Как скрыть некоторые свойства элемента управления по умолчанию во время разработки (C #)? - PullRequest
12 голосов
/ 05 марта 2009

У меня есть пользовательский элемент управления, который я сделал. Он наследуется от System.Windows.Forms.Control и имеет несколько новых свойств, которые я добавил. Можно ли показывать мои свойства (например, TextOn и TextOff) вместо свойства "Text" по умолчанию.

Мой элемент управления работает нормально, я просто хотел бы очистить окно свойств.

Ответы [ 4 ]

15 голосов
/ 05 марта 2009

Вы можете либо переопределить их (если они могут быть переопределены) и применить атрибут Browsable, указав false, либо создать новую версию свойства и применить тот же атрибут (этот второй подход не всегда работает, поэтому YMMV).

Кроме того, вы можете использовать пользовательский TypeConverter для вашего типа и переопределить метод GetProperties, чтобы контролировать, какие свойства отображаются для вашего типа. Этот подход более устойчив к изменению базовых базовых классов, но может потребовать больше усилий в зависимости от того, чего вы хотите достичь.

Я часто использую комбинацию атрибута Browsable и пользовательского TypeConverter.

6 голосов
/ 06 марта 2009

Переопределить свойство и добавить [Browsable(false)].

Вы также можете добавить [EditorBrowsable(EditorBrowsableState.Never)], что скроет свойство в IntelliSense в редакторе кода. Обратите внимание, что он будет скрыт только в отдельном решении от исходного элемента управления.

4 голосов
/ 14 сентября 2011

с использованием System.ComponentModel;

[Browsable(false), DesignerSerializationVisibility(
                            DesignerSerializationVisibility.Hidden)]
public int MyHiddenProp {get; set; }

сработало для меня таким образом, что оно не появилось бы в свойствах конструктора, И свойство не будет инициализировано дизайнером, который переопределит мою собственную инициализацию ....

0 голосов
/ 05 марта 2009

Вы ищете атрибуты времени разработки , в частности, BrowsableAttribute. DefaultPropertyAttribute устанавливает, какое свойство является значением по умолчанию для редактирования.

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