Я пытаюсь создать пользовательский класс 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
Есть ли способ, чтобы предотвратить пользователю установить размер элемента управления?
Edit: Я придумал более чистым раствором, что устраняет необходимость устанавливать два свойства отдельно, но я не уверен, если это действительно правильный путь либо. Вот что я хотел бы сделать:
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;
}