防止控件的Size属性被设置?

时间:2013-05-05 16:08:50

标签: c# winforms properties user-controls override

我正在尝试创建一个自定义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;
}

1 个答案:

答案 0 :(得分:3)

尝试新的:

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