戻る


一般的に、使用する、ダイアログ

フォームの大きさを固定にし、境界線をダイアログぽっくする

右上のボタンを、閉じるボタンだけにする

 

ディフォルトボタン、キャンセルボタンの設定

ボタンを二つ配置してみた

フォームオブジェクトに対するプロパティとして、ディフォルトボタン、キャンセルボタンを設定する

キャセルボタンプロパティの値を設定すると、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;
            }

        }

 


戻る