C#フォームを閉じたボタンを取得する

スポンサーリンク

フォームを閉じたボタンを取得するには、DialogResult プロパティを各々のボタンに設定します。メインとなるフォームから、別のフォームをサブ画面として表示した場合に使えます。サブ画面での入力内容を、適用するかどうかを決定付けることができるからです。例えば、サブ画面で [キャンセル] が選択された場合は適用しないが、[OK] が選択された時は適用する場合などです。

DialogResult プロパティを設定したボタンは、Close メソッドを呼ばなくても閉じられることに注意してください。以下の例では、メインフォーム から サブフォーム を開き、サブフォームで [OK] ボタンを選択した時のみ、メッセージボックスにその旨を表示します。

サンプルコード

以下にサンプルコードを示します。

C# 全般
// メイン フォーム側
public class FormMain : System.Windows.Forms.Form {

   Windows フォーム デザイナで生成されたコード 

    // btnShowSub をクリックした時
    private void btnShowSub_Click(object sender, System.EventArgs e) {
        // FormSub の新しいインスタンスを生成する
        FormSub cFormSub = new FormSub();

        // FormSub を表示して、btnOK を選択して閉じた時 [OK] となることを確認する
        if (cFormSub.ShowDialog() == DialogResult.OK) {
            MessageBox.Show("FormSub で [OK] ボタンが選択されました");
        }

        // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
        cFormSub.Dispose();
    }
}
C# 全般
// サブ フォーム側
public class FormSub : System.Windows.Forms.Form {

   Windows フォーム デザイナで生成されたコード 

    // ロード時にボタンの役割を設定 (通常は、デザイナで初期設定するので必要ありません)
    private void FormSub_Load(object sender, System.EventArgs e) {
        this.btnOK.DialogResult = DialogResult.OK;
    }
}

関連するリファレンス

準備中です。

スポンサーリンク