2013-05-05 55 views
2

我正在嘗試創建一個自定義Panel類,該類不允許將其大小設置在類之外。 我試過是這樣的:防止控件的Size屬性被設置?

public class FixedPanel : Panel 
{ 
    public override Size Size { get; private set; } 
} 

,但我得到一個錯誤,指出FixedPanel.Size.set: cannot override inherited member 'System.Windows.Forms.Control.Size.set' because it is not marked virtual, abstract, or override

有沒有辦法來防止用戶設定一個控件的大小?


編輯:我想出了一個清潔的解決方案,消除了需要分別設置兩個屬性,但我不知道這是否真的是一個正確的方法要麼。 這裏就是我想要做的:

private Size fixedSize; 
private void SetFixedSize(Size size=null) 
{ 
    if (size) 
     this.fixedSize = size; 

    if (this.Size != this.fixedSize) 
     this.Size = this.fixedSize; 
} 

public FixedPanel() 
{ 
    this.SizeChanged += SetFixedSize; 
} 

回答

3

嘗試用新:

public class FixedPanel : Panel 
{ 
    public new Size Size { get; private set; } 
} 
相關問題