2013-05-05 7 views
2

Я пытаюсь создать пользовательский класс 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; 
} 

ответ

3

Try с новым:

public class FixedPanel : Panel 
{ 
    public new Size Size { get; private set; } 
} 
Смежные вопросы