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