禁用Windows窗体关闭按钮

时间:2012-11-06 09:01:39

标签: c# methods

经过数小时的Google搜索,找到了以下代码片段,它实际上只会禁用表单的关闭按钮。

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;
     }
}

现在我不是仅仅在每种形式中编写相同的片段,而是试图找到一种方法将其打包成可能是类的静态方法,这样我就可以从任何地方只用一行来对它进行分类。

但我遇到了一个问题,因为这个片段也是一个被覆盖的方法,因此我不知道如何将它放到另一个静态方法中。

我尝试了以下

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public class Common
    {
        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;
            }
        }
    }
}

但它抛出了这个错误:' WindowsFormsApplication1.Common.CreateParams':找不到合适的方法来覆盖

我的问题是如何才能使此代码段重复使用?

2 个答案:

答案 0 :(得分:4)

创建一个继承自Form类的基类,然后使所有表单从该类继承。

public class BaseForm : Form
{
    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;
        }
    }
}

public partial class Form1 : BaseForm
{
//your form code
}

答案 1 :(得分:0)

在C#windows窗体中启用/禁用/隐藏关闭按钮

您可以查看this