Главная » C#, Компоненты » Класс UlTypeEditor

0

Создание нового редактора типа заключается в создании наследника класса System.Drawing.Design.UlTypeEditor, который привязывается к редактируемому свойству с помощью атрибута Edit or At tribute:

[Editor (typeof (MyPropertyEditor), typeof (UlTypeEditor) ) ] public byte MyProperty

f

get/set

}

Либо можно привязать редактор непосредственно к типу данных:

[Editor (typeof (MyEnumEditor) , typeof (UlTypeEditor) ) J

public enum MyEnum

{

Value 1 = 1,

Сам класс uiTypeEditor предоставляет свойства и методы для создания собственного редактора:

?       виртуальный метод object EditValue (ITypeDescriptorContext context, iserviceProvider provider, object value) отображает диалог редактирования значения свойства и возвращает новое значение свойства (если значение свойства не изменилось, надо вернуть старое значение);

?       виртуальный метод UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) определяет стиль редактора: uiTypeEditorEditstyle.DropDown показывает справа треугольничек, как в выпадающем списке, а UITypeEditorEditStyle.Modal показывает кнопку с тремя точками;

?       виртуальный метод bool GetPaintValueSupported(ITypeDescriptorContext context) определяет, нужно ли отрисовывать изображение значения (рис. 9.1);

?       виртуальный метод void PaintValue (PaintValueEventArgs е) позволяет показать изображение значения (если, конечно, метод

GetPaintValueSupported О вернул true);

?       виртуальное свойство bool isDropDownResizabie определяет, можно ли изменять размеры выпадающего диалога.

Как обычно, сначала я расскажу о некоторых стандартных редакторах типов,

а затем мы перейдем к созданию собственного редактора.

Рис. 9.1. Квадрат изображения

Литература:

Агуров П. В. C#. Разработка компонентов в MS Visual Studio 2005/2008. – СПб.: БХВ-Петербург, 2008. — 480 е.: ил.

По теме:

  • Комментарии