1. ホーム
  2. c#

Windowsフォームの標準の閉じる(X)ボタンをオーバーライドする

2023-08-05 09:49:35

質問

Windows Forms アプリケーション (C#) で、ユーザーが閉じる (赤い X) ボタンをクリックしたときに起こることを変更するには、どうしたらよいでしょうか。

どのように解決するのですか?

オーバーライドすることができます。 OnFormClosing をオーバーライドすることができます。ただ、閉じるために「X」をクリックすることはよく理解されている動作なので、あまり予想外のことをしないように注意してください。

protected override void OnFormClosing(FormClosingEventArgs e)
{
    base.OnFormClosing(e);

    if (e.CloseReason == CloseReason.WindowsShutDown) return;

    // Confirm user wants to close
    switch (MessageBox.Show(this, "Are you sure you want to close?", "Closing", MessageBoxButtons.YesNo))
    {
    case DialogResult.No:
        e.Cancel = true;
        break;
    default:
        break;
    }        
}