.NET FrameworkのWindowsフォームで「×」ボタンなどでウィンドウを閉じる操作をした際などに、条件を確認し閉じる処理をキャンセルする方法を紹介しています。
//FormClosingイベント
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (DialogResult.No == MessageBox.Show(
"終了しますか?", "終了確認", MessageBoxButtons.YesNo))
{
e.Cancel = true;
}
}
Windows フォーム アプリケーションを作成する際に、誤操作などでウィンドウをいきなり閉じないように確認ダイアログを出したい場合があります。
その際には、
FormClosing
イベントを利用します。このイベントの第二パラメータで渡される
FormClosingEventArgs
の
Cancel
を
true
にすることにより、閉じる処理などをキャンセルすることができます。
この処理を使って、ダイアログで閉じるかどうかの判定を実施し、閉じたくない場合は
e.Cancel=true
とします。
応用として、中断できない処理中などにクローズオペレーションをキャンセルするなども可能です。