2012-11-06 134 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