2012-02-21 147 views
0

我正在研究從UserControl類派生的類。此類將屬性[Browsable(false)][EditorBrowsable(EditorBrowsableState.Never)]添加到從Control類繼承的事件TextChanged將屬性添加到基本事件

我的新控件相當於TabPage;它被用於與TabControl相當的另一個類中。這很重要的原因是因爲這意味着我需要控件的用戶能夠訪問此事件。在.NET反射,我們看到TabPage控制(從Panel,這也增加了這兩個屬性繼承)「覆蓋」使用下面的代碼這兩個屬性:

[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)] 
public event EventHandler TextChanged; 

我複製到我的項目這一點,據我可以告訴它工作正常,但編譯器給我一個警告:「'System.Windows.Forms.Frameset.FunctionPanel.TextChanged'隱藏繼承成員'System.Windows.Forms.UserControl.TextChanged'。使用新的關鍵字是否隱藏意圖。「我不想隱藏舊的TextChanged事件;我只想刪除Browsable(false)屬性。雖然隱藏舊事件看起來似乎完成了表面上的工作,但它似乎是一個醜陋而迂迴的做法。有沒有辦法做到這一點,而不隱藏舊的事件?如果沒有,有沒有辦法讓編譯器停止給我一個警告呢?

由於提前, 布蘭登

回答

5

你可以嘗試以下。在所有可能的情況下應該是安全的:

[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)] 
    public new event EventHandler TextChanged { 
     add { 
      base.TextChanged += value; 
     } 
     remove { 
      base.TextChanged -= value; 
     } 
    } 
+0

謝謝!這正是我正在尋找的! – aboveyou00 2012-02-21 04:58:04