C # Как установить значение по умолчанию для объекта в таблице свойств? - PullRequest
2 голосов
/ 07 января 2011

У меня есть объект, который наследуется от Button.Эта кнопка является свойством объекта, который наследуется от TableLayoutPanel.Свойство называется MyButton:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
**[DefaultValue(??? Something Like Visible = false ???)]**
public CustomButton MyButton
{
    get { return _button; }
    set { _button = value; }
}

Теперь в конструкторе я хочу установить для свойства Visible MyButton значение false.По умолчанию свойство Visible имеет значение true, но в этом случае я хочу, чтобы оно было ложным.

Как я могу это сделать?

Ответы [ 4 ]

3 голосов
/ 07 января 2011
1 голос
/ 07 января 2011

в вашем MyButton классе, удалить все, что вы добавили, пытаясь переопределить свойство Visible , добавьте следующий код:

public MyButton()
{
    this.Visible=false;
}

Перестройте его, затем добавьте новый экземпляр Mybutton в вашу форму, вы можете видеть, что его свойство visible в конструкторе теперь установлено в False.

1 голос
/ 07 января 2011

Поскольку ваше значение не является постоянным значением, его нельзя использовать с DefaultValueAttribute, так как эти значения требуются во время компиляции.Вместо этого вы можете игнорировать DefaultValueAttribute и в конструкторе вы можете инициализировать атрибут MyButton с пользовательским экземпляром CustomButton с установленными на нем атрибутами по умолчанию.Единственная ошибка здесь заключается в том, что в сетке свойств значение свойства будет выделено жирным шрифтом, как если бы пользователь его изменил.

0 голосов
/ 07 января 2011

Переопределить свойство и затем установить значение по умолчанию:

[DefaultValue(false)]
new public bool Visible
{
  get { return base.Visible; }
  set { base.Visible = value; }
} 

Надеюсь, это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...