Как заставить WinForm Designer полностью игнорировать свойство в пользовательском элементе управления? - PullRequest
14 голосов
/ 08 апреля 2010

Это должен быть FAQ, но я не могу найти повторяющийся вопрос!

Существует множество различных атрибутов, которые управляют тем, что WinForm Designer делает со свойствами пользовательского элемента управления.Я никогда не понимаю, что мне следует использовать в этом случае.

Я ищу:

  • Дизайнер не показывает свойство в сетке
  • Дизайнер делаетне читается значение свойства
  • Конструктор не устанавливает для свойства значение по умолчанию
  • Например, конструктор ведет себя так, как если бы свойства там не было .
  • Конструктор делаетне жалуйтесь, если он уже сделал одно из перечисленных выше действий до того, как были добавлены атрибуты (сложно!)

Фон.

Код, который вызывает у меня проблему:

this.eventListControl.FilterSets = 
   ((SystList<FilterSet>)(resources.GetObject("eventListControl.FilterSets")));

Свойство FilterSets никогда не должно было затрагиваться конструктором winforms;теперь это не Serializable, и MsDev падает каждый раз, когда форма, которая использовала eventListControl, изменяется!

1 Ответ

32 голосов
/ 08 апреля 2010

Я думаю, вы можете использовать [Browsable (false)] и [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]

Второй атрибут предотвращает появление свойства в InitializeComponent

...