williambirkin

恭喜发财!

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

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


添加必要的命名空间:

using System.Runtime.InteropServices;


添加必要的常数和
API函数的引用

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 2007-05-10 13:25  williambirkin  阅读(506)  评论(0编辑  收藏  举报