静观己心,厚积薄发

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

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

}

 

posted on 2010-12-31 16:54  猎人杰  阅读(424)  评论(0编辑  收藏  举报