Visual Studio - удалить пользовательский элемент управления из окна дизайнера - PullRequest
0 голосов
/ 16 апреля 2009

У меня есть пользовательская панель управления с двумя кнопками. Другие пользовательские элементы управления наследуются от этого элемента управления и устанавливают для свойства значение true, если кнопки должны быть видны. Все работает так, как я хочу, но то, что я ищу, это способ убрать эти кнопки из окна дизайнера для форм, где это свойство имеет значение false.

выглядит так:

[DefaultValue(false)]
public bool ShowButtons{
  set
  { 
    mShowButtons = value;
    UpdateButtons();
  }
  get
  {
    return mShowButtons;
  }
}

Это свойство отображается в окне свойств, а кнопки всегда отображаются в окне дизайнера. Есть ли способ, чтобы дизайнер оценил это при изменении свойства, чтобы кнопки были удалены из наследуемой формы? Мне не удалось найти атрибут конструктора для этого.

1 Ответ

0 голосов
/ 16 апреля 2009

Попробуйте добавить get:

bool mShowButtons;
[DefaultValue(false)]
public bool ShowButtons
{
  get
  {
     return mShowButtons;
  }
  set
  { 
    mShowButtons = value;
    UpdateButtons();
  }
}

Теперь при редактировании вашего производного класса в Designer вы должны увидеть свойство ShowButtons в окне свойств, когда выбран производный UserControl. (Это будет в разделе «Разное», если вы не добавите соответствующий атрибут). Если вы установите его там, он должен иметь соответствующий эффект в Designer (при условии, что содержимое функции UpdateButtons () работает правильно).

Свойство должно быть открытым и иметь бот get и set для отображения в окне редактора свойств. Если это так, то установка значения в окне свойств «сохранит» эту настройку для разработанного элемента управления в ресурсах / реализации элемента управления.

Я использую эту функцию довольно часто, чтобы специализировать производные пользовательские элементы управления, поэтому я знаю, что она должна работать для вас (хотя могут быть и другие проблемы).

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