Подтвердить что ты не робот

Как скрыть некоторые свойства управления по умолчанию во время разработки (С#)?

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

Мой контроль работает отлично, я просто хотел бы загромождать окно свойств.

4b9b3361

Ответ 1

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

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

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

Ответ 2

Отмените свойство и добавьте [Browsable(false)].

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

Ответ 3

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

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

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