C# 禁止ALT+F4

1. Windows Forms中禁用窗体的关闭按钮

添加必要的命名空间及常数和API函数的引用
using System.Runtime.InteropServices;

private const int SC_CLOSE = 0xF060;

private const int MF_ENABLED = 0x00000000;

private const int MF_GRAYED = 0x00000001;

private const int MF_DISABLED = 0x00000002;



[DllImport(
"user32.dll", EntryPoint = "GetSystemMenu")]

private static extern IntPtr GetSystemMenu(IntPtr hWnd, int bRevert);

[DllImport(
"User32.dll")]

public static extern bool EnableMenuItem(IntPtr hMenu, int uIDEnableItem, int uEnable);

在窗体的Load事件处理函数内添加代码

private void Form6_Load(object sender, EventArgs e)

{
IntPtr hMenu
= GetSystemMenu(this.Handle, 0);
EnableMenuItem(hMenu, SC_CLOSE, MF_DISABLED
| MF_GRAYED);

}

2. Windows Forms中禁用窗体的关闭按钮和ALT+F4关闭

代码
protected override CreateParams CreateParams

{
get
{
const int CS_NOCLOSE = 0x200;
CreateParams cp
= base.CreateParams;
cp.ClassStyle
= cp.ClassStyle | CS_NOCLOSE;
return cp;
}

}

原文地址:https://www.cnblogs.com/jiewei915/p/1923268.html