Обновить
После множества поисков я обнаружил, что то, что я ответил, было лишь частично правильным, поэтому я хотел бы ответить на него снова.
Ответ на ваш вопрос однозначно НЕТ, у нас есть другой способ показать значения свойства как DropDownList
. Как я упоминал в своем старом ответе, если значения поступают из какого-то Set
или, другими словами, они принадлежат набору значений, они будут отображаться как DropDownList
без каких-либо дополнительных усилия (поскольку для них было указано UITypeEditor
, вы поймете этот момент позже). Вот 3 примера:
- Если
Property
является bool
, в дизайнере он покажет вам, что DropDownList
содержит True
и False
;
![раскрывающийся список с двумя значениями](https://i.stack.imgur.com/Bwvyg.png)
- Если
Property
является Font.Name
, в дизайнере он покажет вам DropDownList
с SmallIcon
;
![раскрывающийся список с маленьким значком](https://i.stack.imgur.com/AZMdX.png)
- если
Property
является Color
, в дизайнере он покажет вам некоторые DropDownList
, инкапсулированные в TabControl
.
![элемент управления вкладкой инкапсулирует раскрывающийся список](https://i.stack.imgur.com/LljZo.png)
Из этих «нативных» примеров вы можете понять один факт: мы могли каким-то образом использовать некоторые элементы управления, кроме простого DropDownList
в Property Tab
во время разработки. Например, свойство Color
дает TabControl
вместо простого DropDownList
, а свойство Font.Name
дает настроенное DropDownList
.
Да, это вторая вещь, о которой я собираюсь поговорить. Вы можете настраивать не только элементы в DropDownList
, но и View
этого Value Choosing Editor
.
Однако это очень сложно и нетривиально. Вам не рекомендуется делать это, если это действительно не добавляет ценности вашему пользовательскому элементу управления во время разработки.
Короче говоря, вам нужно наследоваться от UITypeEditor
и переопределить 2 функции:
GetEditStyle()
, который
указывает среде разработки, какой тип пользовательского интерфейса реализует ваш редактор типов пользовательского интерфейса.
и EditValue()
, который
устанавливает взаимодействие между средой проектирования и пользовательским интерфейсом для редактирования пользовательского типа
Затем для вашего свойства, которое использует Editor
, вам нужно добавить к нему EditorAttribute
, чтобы указать Editor
, используемое при выборе значения этого свойства.
Для получения более подробных сведений рекомендуется ознакомиться с этим пошаговым руководством MSDN. , в котором объясняется, как создать индивидуальный Value Editor
во время разработки.
Теперь вернемся к тому месту, где мы остановились. Родной тип, такой как bool
и Color
, уже связан с UITypeEditor
, поэтому дальнейшая работа не требуется.
Старый ответ:
Для свойств вам нужно выбрать значение из типа Set
, и все элементы в этом Set
будут отображаться как Items
в DropDownList
во время разработки. Когда вы пытаетесь определить Set
, Enum
является одним из методов их определения. Также вы можете использовать set of struct
, например Color
. Другими словами, если у вас есть Property
, который возвращает Color
(или другие структуры), во время разработки он будет отображаться в виде раскрывающегося списка.
person
nevets
schedule
27.08.2014
DropDownList
, но не являетсяDropDownList
? - person Michael McGriff   schedule 27.08.2014