
【VB.NET】別Formのボタンが押されるまで待機する方法??
今晩は,いつもいつも勉強させていただいております.
質問させていたきます.どうぞよろしくお願いいたします.
開発環境XP+VB2008になります。
今までは、コード中のMsgBoxで続行か中断かを選択するために
Private Sub Button1_Click
:
:
:
If MsgBox("続行しますか?", MsgBoxStyle.OkCancel, "確認") = vbOK Then
Else
Exit Sub
End If
:
:
:
End Sub
としておりましたが、このMsgBox上に複数のコントロールが必要になって
しまいましたので、同じ形のFormを作成いたしました。
(Form_MsgBox上に、ButtonOK、ButtonCancel、Label1に加え
TextBox1を配置)
Form_MsgBox.LabelMsg.Text = "確認"
Form_MsgBox.Show()
が、このメッセージ表示中だけPrivate Sub Button1_Clickを
止めておく方法がわかりません。。。
ButtonOKかButtonCancelが押されるまで待機したいのですが。。
検索いたしておりますと、何か他のアプリを起動した場合に
それが終わるまで待機する、といった方法は結構見つかるのですが。。。
何か良さそうな方法など思いつかれるようでございましたら、
是非ともアドバイスいただきたくお願い申し上げます。
もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
Form_MsgBoxを ShowDialogで表示してやるってのはダメなんですか?
親FormのButton1を押した際に 親Form内の他のコントロールを操作したいのですとこの手法は使えませんが ・・・
どうもありがとうございます!
うまくいきそうでございます^^
一つだけ、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
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
といった具合で ・・・
この回答への補足
(お礼後の補足になります。)
しつこくどうも申し訳ございません^^;
「ベストアンサー」ですが、後からご覧になった方々が
分かりやすいように、 ShowDialogをご紹介いただけた
回答No.2に付けさせていただきます。
この度は誠にありがとうございました! m(_ _)m
どうもありがとうございます!
助かりました^^
今いろいろと動作確認いたしておりますが、
この方法だと他のフォームへのFormMouseDownが
取れないようでございますねー。。。
ずっと検索いたしておりますが解決策が見つかりませんorz
(タイトルの件はアドバイスいただけたお陰ですべて解決できましたので
本質問は解決済みとさせていただきますm(_ _)m )
ご助言いただけたお陰でまたできることの幅が広がりました^^
この度はご閲覧・アドバイスいただきまして
誠にありがとうございました!!
No.1
- 回答日時:
Form_MsgBoxにメンバ変数をひとつ設定して
それをチェックしに行く、アクセス関数を設けてはどうでしょうか。
押されていない間、Do ~Loopステートメントで待ち続ける。
Form_MsgBox側では、どのボタンが押されたかを格納する変数を用意しておきます。
考え方としては、これでいけるのかな。と思います。
注意しなければならないのは
メンバ変数の初期化です。
これを怠ると、2回目同じ処理に来たときに素通りしてしまいます。
どうもありがとうございます!
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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
VB.NETで他のEXEを実行させる
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
-
4
メモリ不足
Visual Basic(VBA)
-
5
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
6
特定のキーを押すまでループさせるにはどうすればよいですか。
Visual Basic(VBA)
-
7
VB.NETでフォームロード中のエラー時に終了する方法について
Visual Basic(VBA)
-
8
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA セル間のリンク修正につい...
-
VBAでCOPYを繰り返すと、処理が...
-
vba textboxへの入力について教...
-
複数のExcelファイルをマージす...
-
【マクロ】開いているブックの...
-
VBA ユーザーフォーム ボタンク...
-
Excelのマクロについて教えてく...
-
WindowsのOutlook を VBA から...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
ワードの図形にマクロを登録で...
-
Excelのマクロについて教えてく...
-
VBAの質問(Msgboxについて)です
-
えくせるのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
vbaにてseleniumを使用したedge...
-
Excel 範囲指定スクショについ...
-
ExcelのVBAコードについて教え...
-
【マクロ】並び替えの範囲が、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6.0で、フォームから、別のフ...
-
【VB.NET】別Formのボタンが押...
-
DataTableの件数を取得したい
-
複数ボタンで指定のフレームに移動
-
「Me」を「Form1」にするとエラ...
-
CreateDialogについて
-
VB6.0のHideのバグ?
-
IBM Watson Text to Speechを始...
-
外部swfとして読み込ませると動...
-
インスタンスとポインタ
-
フォームの生成と破棄
-
ハンドルからインスタンス?を取...
-
フェードイン-(待機)-フェー...
-
Win32 API ウィンドウ
-
画像を一定時間ごとに切り替え...
-
ダミーウインドウ
-
カーソルを手に変更
-
Python でシャットダウンのコマ...
-
VBAユーザーホームテキストボッ...
-
変数に256文字以上のテキストを...
おすすめ情報