フォームを閉じたボタンを取得する
スポンサーリンク
フォームを閉じたボタンを取得するには、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; } }
関連するリファレンス
準備中です。