[Tips][Button] ボタンをクリックしたときに親フォームに返す値を設定する

本記事はWindowsアプリケーションのTipsです。


サブフォームでボタンがクリックされたときに、親フォームに返す値を設定するには、DialogResultプロパティを使用します。

DialogResultプロパティには、表1に示すDialogResult列挙体の値を指定します。

メンバ名 説明
Abort 中止を意味します
Cancel キャンセルを意味します
Ignore 無視を意味します
No いいえを意味します
None ダイアログボックスからNothingを返します。つまりダイアログボックスの実行が継続します。
OK OKを意味します
Retry 再試行を意味します
Yes はいを意味します

サンプルを実行するにはForm1とForm2を準備して下さい。

Form1にはButtonを1個貼り付け(Button1)。

Form2にはButtonを7個貼り付け(Button1~Button7)。

Button1~Button7のTextプロパティは、順にOK,Cancel,Abort,Retry,Ignore,Yes,Noとしてください。

親フォームに返す値を設定する

VBの例

'***** Form1のコード *****
'Form1 - Button1クリック時の処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim frmDialog As New Form2
    Dim Result As System.Windows.Forms.DialogResult

    Result = frmDialog.ShowDialog()

    MessageBox.Show(Result.ToString() & "が選択されました。")
End Sub

'***** Form2のコード *****
'Form2ロード時の処理(各ボタンに親フォームに返す値を設定)
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Button1.DialogResult = Windows.Forms.DialogResult.OK
    Button2.DialogResult = Windows.Forms.DialogResult.Cancel
    Button3.DialogResult = Windows.Forms.DialogResult.Abort
    Button4.DialogResult = Windows.Forms.DialogResult.Retry
    Button5.DialogResult = Windows.Forms.DialogResult.Ignore
    Button6.DialogResult = Windows.Forms.DialogResult.Yes
    Button7.DialogResult = Windows.Forms.DialogResult.No
End Sub

C#の例

'***** Form1のコード *****
'Form1 - Button1クリック時の処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim frmDialog As New Form2
    Dim Result As System.Windows.Forms.DialogResult

    Result = frmDialog.ShowDialog()

    MessageBox.Show(Result.ToString() & "が選択されました。")
End Sub

'***** Form2のコード *****
'Form2ロード時の処理(各ボタンに親フォームに返す値を設定)
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Button1.DialogResult = Windows.Forms.DialogResult.OK
    Button2.DialogResult = Windows.Forms.DialogResult.Cancel
    Button3.DialogResult = Windows.Forms.DialogResult.Abort
    Button4.DialogResult = Windows.Forms.DialogResult.Retry
    Button5.DialogResult = Windows.Forms.DialogResult.Ignore
    Button6.DialogResult = Windows.Forms.DialogResult.Yes
    Button7.DialogResult = Windows.Forms.DialogResult.No
End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です