📜  在 c# 表单中禁用 alt + f4 - C# (1)

📅  最后修改于: 2023-12-03 15:07:37.647000             🧑  作者: Mango

在 C# 表单中禁用 Alt + F4

在 C# 表单中禁用 Alt + F4 可以防止用户通过该快捷键关闭窗口。下面介绍两种实现的方法:

方法一:重写窗口消息处理函数

通过重写窗口消息处理函数,可以拦截 Alt + F4 快捷键,并阻止窗口关闭。

// 定义窗口类
public class MyForm : Form
{
    protected override void WndProc(ref Message m)
    {
        const int WM_SYSCOMMAND = 0x0112;
        const int SC_CLOSE = 0xF060;

        if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
        {
            // 拦截 Alt + F4 快捷键,防止窗口关闭
            return;
        }

        base.WndProc(ref m);
    }
}
方法二:捕获窗口关闭事件

通过捕获窗口关闭事件,可以在窗口关闭前进行处理,如果条件不符合,则取消关闭操作。

// 定义窗口类
public class MyForm : Form
{
    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.UserClosing && (Control.ModifierKeys & Keys.Alt) == Keys.Alt)
        {
            // 取消关闭操作
            e.Cancel = true;
        }
    }
}

以上两种方法的效果相同,可以根据个人喜好选择实现方式。

参考链接: