如何覆盖 Windows 表单中的标准关闭 (X) 按钮

How to Override standard close (X) button in a Windows Form

如何更改用户在 Windows Forms 应用程序(C# 中)中单击关闭(红色 X)按钮时发生的情况?我想添加一个简单的 DialogResult 和 Messagebox 来询问用户是否确定要关闭表单。

您应该处理表单 class 上的 FormClosing 事件。在处理程序中,您可以将 CancelEventArgs.Cancel 属性 的值设置为 true 以防止关闭表单。

示例:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Close?", "Close", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                e.Cancel = true;
        }

您可以在 Windows 表单设计器打开时通过 double-clicking 属性选项卡中的事件创建处理程序方法:

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.form.formclosing?view=windowsdesktop-6.0