ユーザーがアプリを閉じようとしているときにダイアログを表示したいのですが(赤いウィンドウが交差し、フォームのボタン)、ウィンドウがシャットダウンしているとき、このダイアログはシャットダウンをブロックしているので、ウィンドウがシャットダウンしているときにアプリで検出して続行したいダイアログなし。これが私のコードです
フォームのロード後、クローズイベントをキャッチします。
this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
と
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
switch (e.CloseReason)
{
case CloseReason.UserClosing:
if (MessageBox.Show("Do you want to exit the application?", "Your App", MessageBoxButtons.YesNo) == DialogResult.No)
{
e.Cancel = true;
}
break;
case CloseReason.WindowsShutDown:
e.Cancel = false; //this is propably dumb
break;
default:
break;
}
}
ただし、ユーザーがアプリを閉じると、ダイアログが2回表示されます。最初のダイアログは何でもします。2番目のダイアログの後にアクションが実行されます。Windowsがシャットダウンしているときにダイアログを1回だけ閉じてダイアログを表示しないようにするにはどうすればよいですか(Windowsはアプリが閉じるのを待っているため)?