Главная » C#, Компоненты » Реализация собственного редактора типа

0

Теперь разберемся с методами класса UlTypeEditor более подробно. С методом GetEditstyle {} все просто. Если этот метод возвращает uiTypeEditorEditstyie. DropDown, то отображается небольшой треугольник, как у компонента DropDown. Значение UiTypeEditorEditstyie.Modal отображает кнопку с тремя точками, как у компонента выбора файла.

Прежде чем рассматривать основной метод редактора EditvaiueO, мне надо рассказать о сервисе iwindowsFormsEditorService, который используется при создании редактора типа. Сервис имеет всего три метода:

? метод void DropDownControi (Control control} создает диалог редактора в виде выпадающего диалога наподобие выпадающего списка;

?      метод void cioseDropDovm () закрывает диалог, созданный с помощью метода DropDownControl;

?      метод DialogResult ShowDialog (Form dialog) отображает диалог редактирования свойства и возвращает результат редактирования.

Стандартный прототип метода EditValue () имеет вид:

public override object EditValue(ITypeDescriptorContext context,

IServiceProvider provider, object value)

{

if (context != null && context.Instance != null && provider != null)

{

// Получаем интерфейс сервиса IWindowsFormsEditorService edSvc =

(IWindowsFormsEditorService)provider.GetService( typeof(IWindowsFormsEditorService));

if (edSvc != null) {

// Устанавливаем текущее значение для редактирования … = value;

// Вызываем DropDownControl или ShowDialog edSvc.DropDownControl(…); // Получаем новое значение value = …

}

}

// Возвращаем либо старое, либо новое значение return value;

Литература:

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

По теме:

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