C#中如何去除窗体默认的关闭按钮

时间:2022-12-16 23:44:47

很多时候,在winform的设计下,会遇到新建窗体时不需要用到默认的关闭按钮的情况,而是用另外设置关闭 button或其他控件来控制窗体的关闭。
 
之前我遇到这个问题时,问了很多朋友,都没找到方法,VS的窗体属性里也没那一项,在MSDN里也没有相关的资料。但后来偶然发现,原来办法是很简单的,只需要在初始化窗体的时候不显示那关闭按钮就可以了。
具体方法是,加上一句“ this.ControlBox = false;”。
如下:
public Form1()      

InitializeComponent(); 
this.ControlBox = false; 

// 设置不出现关闭按钮

}

而对最大最小化按钮的显示,则可以在窗体的属性项里设置即可。另外,如果需要保留那关闭按钮的显示,但又不起作用,则可以加上几句代

码屏蔽掉它,具体代码如下:

//禁用窗体的关闭按钮

 private const int CP_NOCLOSE_BUTTON = 0x200;

protected override CreateParams CreateParams

{

get

{

CreateParams myCp = base.CreateParams;

myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON;

return myCp;

}

}

下面说一下几个不是只是让关闭按钮隐藏但是可以达到类似效果的方法:
    1.将ControlBox属性设为False。这种方法是让标题栏中的除了标题名以外的其他的全部隐藏,也就是把图标,最小化、最大化和关闭按钮全部隐藏。
     2.让关闭按钮失效,方法是在事件里面找到FormCloseing事件,编辑该事件,在里面写上一条语句“e.Cancel = true;”,这样关闭按钮就失效了,按快捷键“Alt+空格+C”也关闭不了,只有用任务管理器关了,或者用一条语句(“Application.Exit();”)关闭该生成的应用程序用“Alt+F4”也能关闭。
     3.将FormBoderstyle属性设置为None。这种方法是将整个标题栏去掉了。这样也是用快捷键“Alt+空格+C”关闭不了,只有用任务管理器关了,或者用一条语句(“Application.Exit();”)关闭生成的该应用程序,用“Alt+F4”也能关闭