• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【VB.NET】別Formのボタンが押されるまで待機する方法?? )

【VB.NET】別Formのボタンが押されるまで待機する方法??

このQ&Aのポイント
  • VB.NETで別のFormのボタンが押されるまで待機する方法について教えてください。
  • 現在、MsgBoxでの続行か中断かを選択する方法を使っていますが、新しいFormを作成したいと思っています。
  • Form_MsgBoxを表示した後、ButtonOKかButtonCancelが押されるまで待機したいです。他に良い方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

Form_MsgBoxを ShowDialogで表示してやるってのはダメなんですか? 親FormのButton1を押した際に 親Form内の他のコントロールを操作したいのですとこの手法は使えませんが ・・・

MKT_
質問者

お礼

 どうもありがとうございます! うまくいきそうでございます^^ 一つだけ、Form_MsgBox起動時に、その上にあるLabel1.Textが 変わってくれません。。。orz  Form_MsgBox.Label1.Text = "確認"       '↑この行が機能してくれておりません。。  Dim f As New Form_MsgBox  If f.ShowDialog(Me) = DialogResult.OK Then  Else   Exit Sub  End If といたしましたところ、すべてうまく動作してくれるのでございますが、 Label1.Textだけデフォルトのまま変わってくれません。色々と試しておりますが。。 できればタイトルだけ変えて使い回したいのでございますが。。  もし何かご指摘いただけるようなことなどございましたら、 是非ともアドバイスいただきたくお願い申し上げますm(_ _)m

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

Formのインスタンスを生成してから Label1.Textを変更しましょう ' ここではなく 'Form_MsgBox.Label1.Text = "確認" '↑この行が機能してくれておりません。。 Dim f As New Form_MsgBox ' ここで インスタンス経由で設定 f.Label1.Text = "確認" If f.ShowDialog(Me) = DialogResult.OK Then Else   Exit Sub End If といった具合で ・・・

MKT_
質問者

お礼

 どうもありがとうございます! 助かりました^^  今いろいろと動作確認いたしておりますが、 この方法だと他のフォームへのFormMouseDownが 取れないようでございますねー。。。 ずっと検索いたしておりますが解決策が見つかりませんorz (タイトルの件はアドバイスいただけたお陰ですべて解決できましたので 本質問は解決済みとさせていただきますm(_ _)m )  ご助言いただけたお陰でまたできることの幅が広がりました^^  この度はご閲覧・アドバイスいただきまして 誠にありがとうございました!!

MKT_
質問者

補足

(お礼後の補足になります。)  しつこくどうも申し訳ございません^^; 「ベストアンサー」ですが、後からご覧になった方々が 分かりやすいように、 ShowDialogをご紹介いただけた 回答No.2に付けさせていただきます。  この度は誠にありがとうございました! m(_ _)m

すると、全ての回答が全文表示されます。
  • t-aka
  • ベストアンサー率36% (114/314)
回答No.1

Form_MsgBoxにメンバ変数をひとつ設定して それをチェックしに行く、アクセス関数を設けてはどうでしょうか。 押されていない間、Do ~Loopステートメントで待ち続ける。 Form_MsgBox側では、どのボタンが押されたかを格納する変数を用意しておきます。 考え方としては、これでいけるのかな。と思います。 注意しなければならないのは メンバ変数の初期化です。 これを怠ると、2回目同じ処理に来たときに素通りしてしまいます。

MKT_
質問者

お礼

 どうもありがとうございます! Form_MsgBox側のButtonOK_Click時にボタン自身のTagを 切り替えるようにいたしまして、Form1側でそれを待つように してみましたが、Form_MsgBoxが表示されると同時に固まってしまいます。。。orz   Do Until Form_MsgBox.ButtonOK.Tag = 1 or Form_MsgBox.ButtonCancel.Tag = 1 System.Threading.Thread.Sleep(1000) Loop  もう少し考えてみます!この度はご親切にアドバイスいただき 誠にありがとうございました!!

すると、全ての回答が全文表示されます。

関連するQ&A