Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Свойства новых контролов Добавлено: 23.03.04 15:09  

Автор вопроса:  salo_ua

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

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #1 Добавлено: 23.03.04 18:46
так организуй это свойство в виде enum


Ответить

Номер ответа: 2
Автор ответа:
 salo_ua



Вопросов: 7
Ответов: 8
 Профиль | | #2 Добавлено: 24.03.04 16:40

А как насчет запуска окна выбора рисунка из окна свойств, как у стандартных контролов?

Ответить

Номер ответа: 3
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #3 Добавлено: 24.03.04 17:53
по-моему для этого достаточно что б свойсво было определенного типа например
Icon, Image..
а вообще можна определять свои собственные обработчики значений свойств, но
как это точно сделать не скажу, но вроде надо копать в сторону атрибутов и
вообще метаданных...


Ответить

Номер ответа: 4
Автор ответа:
 grayk



Вопросов: 5
Ответов: 100
 Профиль | | #4 Добавлено: 25.03.04 10:23

Присоединюсь к разговору. Пробовал я как-то копать в этом направлении, но не докопался. Проблема была похожая - как показывать в этом окне свойства своих типов данных. У меня все работало в режиме read-only, т.е. все серое. Аналогично и со списками. Открывается стандартное окно для редактирования коллекции, но при нажатии Add вываливается сообщение, мол нет подходящего редактора, или что-то такое... В общем, так и забросил.

Ответить

Номер ответа: 5
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #5 Добавлено: 25.03.04 15:47
вот ссылочка http://rsdn.ru/article/dotnet/dotnetcontrols.xml
ищите раздел Редактор типов (UITypeEditor)


Ответить

Номер ответа: 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 Color

Get

Return _ColorStringListAlter

End Get

Set(ByVal Value As Color)

_ColorStringListAlter = Value

End Set

End Property

перед, собственно привычным написанием свойства идут его <Атрибуты>, это все то, что поможет выстроить PropertyGrid, и указать в Браузере объектов типа подсказки описания и т.д. Далее...

Тип свойства объявлен Color - думать ни чего не надо в PropertyGrid будет подбор цвета, то же самое и с Font, Icon, Image, Integer, String, Enum (в смысле пользовательское перечисление) с этим без проблем, а вот с атрибутами  (по крайней мере в моем примере) будет не все гладко. В моем примере указан атрибут - DisplayName("Цвет альтернативной строки"), _  - это не стандартный атрибут, это для того чтобы в PropertyGrid имена свойств писались не так, как объявлены в классе (в моем примере - ColorStringListAlter), а как я захочу - в данном случае атрибут DisplayName это укажет.

Но чтобы DisplayName заработал надо написать класс обертку и ваш класс обернуть в класс обертку. Вот и все.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам