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;
}
}