C# ダイアログフォームのOKボタンをクリックしてもフォームを閉じない

ダイアログを作って、AcceptButtonプロパティに設定したOKボタンをクリックすると、そのダイアログフォームは閉じてしまいますが、条件が整っていないときは、OKボタンを押しても閉じないようにするには次のようにします。

checkbox1にチェックがついていなければ、OKボタンを押しても閉じることはできません。

OKボタンを押したときだけ、checkbox1を確認してその結果をclose_permitionに保存します。

FormClosingイベントで、close_permitionがfalseなら、
e.Cancel = true として、フォームを閉じることをキャンセルします。

単に、

としてしまうと、キャンセルボタンや、閉じるボタンをクリックしたときに、checkbox1の影響を受けてしまうので、前述のようにしないといけないよ。というお話でした。

タイトルとURLをコピーしました