昨日の方法ではApplication.Exit()でも終了できなくなってしまう。そこで、FormClosingイベントでフォームが閉じられた理由を調べ、閉じるボタンが押されたような場合はキャンセルするようにすれば良い。
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason == CloseReason.UserClosing) { e.Cancel = true; } }
FormClosingEventArgsのCloseReasonプロパティにフォームが閉じられた理由が設定されている。ユーザーが閉じるボタンを押した場合やAlt+F4で終了しようとした場合は、CloseReason.UserClosingの値となる。
参考になったのはこのサイトの補足部分。
フォームの「閉じる」ボタンを無効にする - .NET Tips (VB.NET,C#...)