フォームをつなげるには


りか  2003-08-26 15:44:09  No: 108226

こんにちは、VB.NETで双六ゲームを作ってるのですが、フォームを何個か作って、例えば初めはプレイヤーの数を選ぶ、その次に“次”のボタンで次のプレイヤーの名前を入力するフォームにつなげたいのですが、うまくつながりません。あと、ゲーム盤の枡に”一回休み”と“もう一度サイコロを振る”を作りたいのですが、それにも頭を悩ませてます。金曜までに仕上げなくちゃいけないプログラムで苦戦しているのですが、どなたか私の完全未完成のプログラム見ていただけないでしょうか?よろしくお願いします。もしよろしければメールください。

P.S. ずっと前にデータの保存の質問をしてから家のPCが使えなくてこのサイトにアクセスできなかったのですが、その時の質問にお答えいただいた魔界の仮面弁士、Sayさんどうもありがとございました!参考になりました(^o^)遅くなってすみませんm(__)m


クリリン  2003-08-26 18:25:46  No: 108227

画面遷移については、主に二通りあります。
一つはメイン画面を中心に画面を表示する方法。
もう一つは完全ダイアログ形式で常に一つのダイアログだけを表示する方法です。
方法によって説明が変わってくるので、具体的にどうしたいのかを明記してください。
>ゲーム盤の枡に”一回休み”と“もう一度サイコロを振る”
フラグを使ってみるというのはどうでしょうか?
漠然としているので、これも具体的にどのように悩んでいるのかを明確にしていただくと、解答率も上がると思いますよ。


まさ  2003-09-03 23:36:12  No: 108228

始めまして。
りかさん、クリリンさん、横からすみません。
画面遷移について調べていたら、こちらに辿り着きました。
常に一つのダイアログだけを表示する方法を教えていただけませんか?
例えば、メイン画面にボタン「A」があり、ボタン「A」を押すと、メイン画面が閉じ、画面「A」が開く
画面「A」には、ボタン「戻る」とボタン「B」があり、ボタン「戻る」を押すと、画面「A」が閉じ、メイン画面が開く。ボタン「B」を押すと、画面「A」が閉じ、画面「B」が開く。。。。。
と、言うようなイメージです。サンプルコードなどあると助かります。
勉強不足で申し訳ありませんが、よろしくお願いいたします。


クリリン  2003-09-04 00:31:02  No: 108229

メイン画面のコードは
Private Sub A_Click(...)
  Dim frm As New FormA
  Me.Visible = False
  frm.ShowDialog(me)
  Me.Visible = True
end sub
画面Aのコードは
private sub Back_Click(...)
  Me.Close
end sub
private sub B_Click(...)
  Dim frm As New FormA
  Me.Visible = False
  frm.ShowDialog(me)
  Me.Visible = True
end sub

こんな感じでしょうか…
あくまで簡単に作ったので、ちゃんと画面遷移は考えたほうが良いですよ
あと、気をつけなければいけないのは、必ず、中心となるフォームが見えるにしろ、見えないにしろ、存在していなければならないという事です。


クリリン  2003-09-04 00:32:20  No: 108230

ミスタイプです。
private sub B_Click(...)
  Dim frm As New FormA  <-- ここは、FormBです。
  Me.Visible = False
  frm.ShowDialog(me)
  Me.Visible = True
end sub


nanashi  2003-09-04 00:33:31  No: 108231

??
何が分からないのかが分かりませんね。
そこまでイメージ出来てるならその通りに書けば良いんじゃないですか?
フォームのShow、HideメソッドまたはVisibleプロパティなどを調べてみて下さい。


まさ  2003-09-04 01:18:26  No: 108232

クリリンさん、nanashiさん、ありがとうございます。
確かに、nanashiさんのおっしゃる通りです。
ただ、ある事情から急遽VBに転向することになり、昨日初めてVBのコードを見た初心者でして。。
クリリンさん、とても参考になりました。ありがとうございます。


ry  2003-09-04 17:33:19  No: 108233

>>まささん
お仕事ですか?お気持ちはわかります・・
が、初心者という言葉を免罪符にしないでほしい。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加