C#,winform中如何屏蔽右上角的X关闭按钮

来源:百度知道 编辑:UC知道 时间:2024/07/02 02:37:59
实际上发出问题后两分钟我就找到答案了,呵呵
第一种方法就是你们说的那样,用法:添加引用using System.Runtime.InteropServices,在窗体的load事件中引用方法CloseButtonEnable();
此外另一种方法(实现功能屏蔽,但可以正常显示):protected override void WndProc(ref Message m)
{const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
{return;}
base.WndProc(ref m);
} 用法:直接将代码放到窗体的cs文件中就可以了
不过,还是谢谢你们的热心啊

调用Windows API试一下
[DllImport("user32.dll")]
internal static extern IntPtr GetSystemMenu(IntPtr hwnd,bool bRevert);

[DllImport("user32.dll")]
internal static extern int GetMenuItemCount(IntPtr hMenu);

[DllImport("user32.dll")]
internal static extern int RemoveMenu(IntPtr hMenu,int uPosition,int uFlags);

/// <summary>
/// 窗体的关闭按钮失效
/// </summary>
protected void CloseButtonEnable(){
// 默认窗口去除关闭按钮
const int MF_BYPOSITION = 0x00000400;

IntPtr hWindow = this.Handle;
IntPtr hMenu = GetSystemM