
【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も見ています
-
CloseとDisposeの違い
Visual Basic(VBA)
-
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
特定のキーを押すまでループさせるにはどうすればよいですか。
Visual Basic(VBA)
-
-
4
[Excel VBA]コマンドボタンの入力待ち方法
Visual Basic(VBA)
-
5
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
6
VBでUSB制御プログラム作成する方法
Visual Basic(VBA)
-
7
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
8
VB.NETで他のEXEを実行させる
Visual Basic(VBA)
-
9
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
-
10
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
11
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ActionScript】コンボボック...
-
else if文の順序を変えることに...
-
UWSCのBTN関数について。
-
テキストボックスの中身をリセ...
-
photoshopで書いた四角の枠の中...
-
変数に256文字以上のテキストを...
-
ZWCAD CUIXとLISPの関係について
-
PythonでSetWindowPosを使うに...
-
全てのテキストボックスをセル...
-
static関数がmapファイルに載ら...
-
【Photoshop】レイヤー効果の境...
-
マウス自体の移動量の取得
-
別のアプリケーションのテキス...
-
五芒星は、悪魔崇拝とどういう...
-
Linuxインストール時のDVDブート
-
IP Address 入力フォームについて
-
テキストボックスにセルの値を...
-
VBAユーザーホームテキストボッ...
-
movie clipのインスタンス名を...
-
VBAからPDFのテキストフィールド
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CreateDialogについて
-
flash MXのスクロールパネルに...
-
3つ以上のインスタンスの移動
-
ペンによる手書きの様に
-
VB6.0で、フォームから、別のフ...
-
CREATESTRUCT と GetWindowLong
-
_widthから数値を導き出したい
-
シューティングゲームの自機の...
-
前の質問が消えてしまいました
-
【ActionScript】コンボボック...
-
【VB.NET】別Formのボタンが押...
-
レイヤー内のすべてのMCのX...
-
C#で、コントロールの受け渡し...
-
フォームの生成と破棄
-
画像を一定時間ごとに切り替え...
-
ムービークリップ内に配置した...
-
外部swfが表示されません
-
Androidで共通のレイアウトを使...
-
Flash ActionScriptで変形点を...
-
チェックボックスの制御(onCli...
おすすめ情報