我正在尝试创建一个自定义Panel
类,它不允许在类之外设置它的大小。我尝试的是这样的:
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;
}