VB2008フォーム:別のダイアログフォームでクリックされたボタンを知る

別のダイアログボックスで押されたボタンを取得するには、それぞれのボタンの DialogResultプロパティに設定しておきます。

フォーム関連へ



■ DialogResultプロパティの設定値
  • None : Nothing が返されます。ダイアログボックスの処理が継続します。
  • OK : 戻り値は OK (通常、OKボタンで使用)
  • Cancel : 戻り値は Cancel (通常、キャンセルボタンで使用)
  • Abort : 戻り値は Abort (通常、中止ボタンで使用)
  • Retry : 戻り値は Retry (通常、再試行ボタンで使用)
  • Ignore : 戻り値は Ignore (通常、無視ボタンで使用)
  • Yes : 戻り値は Yes (通常、はいボタンで使用)
  • No : 戻り値は No (通常、いいえボタンで使用)
■ 実行画面
よく使う「削除しますか?」のダイアログフォームです。
別フォームのボタン判別ソフト

YesボタンのDialogResultプロパティに、Yesを設定しています
Button1のプロパティ

NoボタンのDialogResultプロパティに、Noを設定しています
Button2のプロパティ

CancelボタンのDialogResultプロパティに、Cancelを設定しています
Button3のプロパティ

呼び出し側のフォームです。
「削除」ボタンをクリックするとダイアログが表示されます。
削除フォーム

ダイアログで「Yes」ボタンがクリックされた場合の結果です。
Yesメッセージ

[実行コード]

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.ShowDialog()

If Form2.DialogResult = Windows.Forms.DialogResult.Yes Then
MessageBox.Show("「Yes」ボタンがクリックされました。")
ElseIf Form2.DialogResult = Windows.Forms.DialogResult.No Then
MessageBox.Show("「No」ボタンがクリックされました。")
ElseIf Form2.DialogResult = Windows.Forms.DialogResult.Cancel Then
MessageBox.Show("「Cancel」ボタンがクリックされました。")
End If
End Sub
End Class


Visual Basic 2008 Express Edition実践入門