Страница: 1 |
|
Вопрос: Свойства новых контролов
|
Добавлено: 23.03.04 15:09
|
|
Автор вопроса: salo_ua
|
Меня интересует как к новому контролу добавить свойство, чтоб его возможные значения представлялись в виде выпадающего списка в окне Properties.
Ответить
|
Номер ответа: 4 Автор ответа: grayk
Вопросов: 5 Ответов: 100
|
Профиль | | #4
|
Добавлено: 25.03.04 10:23
|
Присоединюсь к разговору. Пробовал я как-то копать в этом направлении, но не докопался. Проблема была похожая - как показывать в этом окне свойства своих типов данных. У меня все работало в режиме read-only, т.е. все серое. Аналогично и со списками. Открывается стандартное окно для редактирования коллекции, но при нажатии Add вываливается сообщение, мол нет подходящего редактора, или что-то такое... В общем, так и забросил.
Ответить
|
Номер ответа: 6 Автор ответа: Oleg K
Вопросов: 15 Ответов: 72
|
Профиль | | #6
|
Добавлено: 26.03.04 03:24
|
Не все, но что знаю сам... Берешь контрол PropertyGrid Создаешь класс, например CVisualisation, потом чтобы PropertyGrid увидел все свойства класса надо сделать следующее: PropertyGrid.SelectedObject = New CVisualisation, ну а чтобы в PropertyGrid хоть что-то нарисовалось надо в теле класса написать, например: Private _ColorStringListAlter As Color = Color.Empty ' Цвет альтернативной строки списков = по умолчанию Color.Empty - ничегоПотом само свойство: <CategoryAttribute( "Списки данных"), _Browsable( True), _[ReadOnly]( False), _BindableAttribute( False), _DesignOnly( False), _DisplayName( "Цвет альтернативной строки"), _DescriptionAttribute( "Настройка цвета строк списков представления данных. Определяет цвет альтернативной строки списков.")> _Public Property ColorStringListAlter() As ColorGetReturn _ColorStringListAlterEnd GetSet(ByVal Value As Color)_ColorStringListAlter = Value End SetEnd Propertyперед, собственно привычным написанием свойства идут его <Атрибуты>, это все то, что поможет выстроить PropertyGrid, и указать в Браузере объектов типа подсказки описания и т.д. Далее... Тип свойства объявлен Color - думать ни чего не надо в PropertyGrid будет подбор цвета, то же самое и с Font, Icon, Image, Integer, String, Enum (в смысле пользовательское перечисление) с этим без проблем, а вот с атрибутами (по крайней мере в моем примере) будет не все гладко. В моем примере указан атрибут - DisplayName("Цвет альтернативной строки"), _ - это не стандартный атрибут, это для того чтобы в PropertyGrid имена свойств писались не так, как объявлены в классе (в моем примере - ColorStringListAlter), а как я захочу - в данном случае атрибут DisplayName это укажет. Но чтобы DisplayName заработал надо написать класс обертку и ваш класс обернуть в класс обертку. Вот и все.
Ответить
|
Страница: 1 |
Поиск по форуму