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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中如何去除窗体默认的关闭按钮相关的知识,希望对你有一定的参考价值。

很多时候,在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”也能关闭。

以上是关于C#中如何去除窗体默认的关闭按钮的主要内容,如果未能解决你的问题,请参考以下文章

c#如何实现关闭当前窗体并打开另一个已经创建的窗体。

C# winform 点击一个按钮退出窗体 并关闭相应的进程

c#如何单击按钮显示另一个窗体?

在C#编程中如何实现把窗体的自带的关闭按钮隐藏但是最小化不隐藏

c#如何单击按钮显示另一个窗体

C# WPF: 在一个窗体上设置一个按钮,点击这个按钮时,打开新窗体并关闭原窗体?