2012-11-06 135 views
1

经过几个小时的谷歌搜索这个主题后,我发现下面的代码片断,它有效地只禁用窗体的关闭按钮。禁用Windows窗体关闭按钮

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

现在,而不是只在每一个形式写这篇相同片段,我想办法将它打包弄清楚成一个类的可能是一个静态方法,这样我可以从只有一个行级IT任何地方。

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

我尝试以下

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”:发现覆盖

我的问题是如何使该片段没有合适的方法可重复使用的?

回答

0

启用/禁用/隐藏关闭在C#中的windows键形成

您可以检查this

+0

这正是我想要的。非常感谢! :) – Isuru

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 
} 
+0

这伟大工程!非常感谢哈比:) – Isuru