フォームの大きさを固定にし、境界線をダイアログぽっくする
右上のボタンを、閉じるボタンだけにする
ディフォルトボタン、キャンセルボタンの設定
ボタンを二つ配置してみた
フォームオブジェクトに対するプロパティとして、ディフォルトボタン、キャンセルボタンを設定する
キャセルボタンプロパティの値を設定すると、ESCボタンと、button2クリックが連動しする。
フォームの右上の閉じるボタンをクリックされた時には、button2クリックイベントが連動しない!
ダイアログフォーム上で、フォームを閉じる前の実装として、良いかな〜と思うのは、FormClosing イベントでハンドルする方法ではないかと思う。
方法
正規のお行儀として、OKボタン、キャンセルボタンのそれぞれに、DialogResult プロパティを割り付ける。
DialogResult プロパティが設定されていると、これらのボタンクリックがされるだけで、フォームが閉じられようとする。それを、FormClosingイベントで捕まえて、処理を行う事ができる。
private void Form2_FormClosing(object sender, FormClosingEventArgs e) { if (this.DialogResult == DialogResult.OK) { //ほげほげ }else if (this.DialogResult == DialogResult.Cancel){ //ほげほげ e.Cancel = true; }else{ e.Cancel = false; } }