2013-04-11 22 views
0

我創建了從用戶控件派生的自己控制,我想使Dock屬性爲只讀,並通過試驗&錯誤,我想出了這樣的事情:UserControl並使Dock屬性ReadOnly - 這是一種正確的方式嗎?

public partial class Header : UserControl 
{ 
    public Header() 
    { 
     InitializeComponent(); 
     base.Dock = DockStyle.Top; 
    } 

    /// <summary> 
    /// Gets the DockStyle of the control 
    /// </summary> 
    [Browsable(false)] 
    [ReadOnly(true)] 
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
    public new DockStyle Dock 
    { 
     get 
     { 
      return base.Dock; 
     } 
     private set 
     { 
      base.Dock = DockStyle.Top; 
     } 
    } 
} 

這是做一個正確的方法?簡單地說:我要永遠停靠到頂部(因爲它是一個頭:))

回答

0

private set你有沒有得到很好的落實,因爲它將base.Dock設置爲硬編碼值而不是給定值。然而要麼完全刪除或使其

private set 
{ 
    base.Dock = value; 
} 

注意的是,你的頭類的用戶仍然可以將它轉換爲UserControl和所設定的Dock屬性。 沒有100%的方法來防止這種情況。

+0

我知道,通過代碼創建我的控件可以設置,但通過在Visual Studio中拖放創建它時,它就可以工作。 – Dawid 2013-04-11 08:48:41

0

控制去除安裝塊,一切都將正常運行所需:

public new DockStyle Dock 
    { 
     get 
     { 
      return base.Dock; 
     } 
    } 
相關問題