参见如下的代码(使关闭控钮变灰而不是不显示):[DllImport("User32.dll")] public static extern IntPtr GetSystemMenu(IntPtr hWnd, int bRevert); [DllImport("User32.dll")] public static extern int RemoveMenu(IntPtr hMenu, int nPosition, int wFlags); public const int MF_BYCOMMAND = 0x00000000; public const int MF_DISABLED = 0x00000002; public const int MF_GRAYED = 0x00000001; public const int SC_CLOSE = 0xf060;private void btnNoCloseBtn_Click(object sender, EventArgs e) { IntPtr hMenu; hMenu = GetSystemMenu(this.Handle, 0); RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); }
如果只是设置最大化按钮不可用,直接this.MaximizeBox = false;就行...
谢谢! 在问一个问题,这些值代表的意义哪里可以查到? public const int MF_BYCOMMAND = 0x00000000; public const int MF_DISABLED = 0x00000002; public const int MF_GRAYED = 0x00000001; public const int SC_CLOSE = 0xf060;
或者根据条件把form的在none与非none之间转换
public static extern IntPtr GetSystemMenu(IntPtr hWnd, int bRevert);
[DllImport("User32.dll")]
public static extern int RemoveMenu(IntPtr hMenu, int nPosition, int wFlags);
public const int MF_BYCOMMAND = 0x00000000;
public const int MF_DISABLED = 0x00000002;
public const int MF_GRAYED = 0x00000001;
public const int SC_CLOSE = 0xf060;private void btnNoCloseBtn_Click(object sender, EventArgs e)
{
IntPtr hMenu; hMenu = GetSystemMenu(this.Handle, 0);
RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
在问一个问题,这些值代表的意义哪里可以查到?
public const int MF_BYCOMMAND = 0x00000000;
public const int MF_DISABLED = 0x00000002;
public const int MF_GRAYED = 0x00000001;
public const int SC_CLOSE = 0xf060;