📅  最后修改于: 2023-12-03 15:07:37.647000             🧑  作者: Mango
在 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;
}
}
}
以上两种方法的效果相同,可以根据个人喜好选择实现方式。
参考链接: