2011-01-25 3 views
0

Я пишу элемент управления для C# (WinForms), и у меня есть одно свойство типа Collection.Как открыть модальное диалоговое окно управления двойным щелчком в C#

Когда пользователь выберет это свойство, откроется кнопка с «...» и откроется новое модальное диалоговое окно. Все это отлично работает, у меня есть создать:

public class ItemsEditor : UITypeEditor 

В этом классе у меня есть метод коррекции EditValue и открытый редактор модальный с ShowDialog. Как я говорю, эта работа прекрасна.

Но, я хочу открыть это диалоговое окно, когда пользователь управления дважды щелкните по нему.

Для этого у меня есть наследует ControlDesigner:

public class MyControlDesigner : ControlDesigner 

и в этом классе я унаследовать следующий метод:

public override void DoDefaultAction() 
{ 
    string propertyName = "Items";      
    IServiceProvider provider = (IServiceProvider)GetService(typeof(IServiceProvider));  

    PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(MyControl); 

    PropertyDescriptor property = properties[propertyName]; 

    UITypeEditor editor = (UITypeEditor)property.GetEditor(typeof(UITypeEditor)); 

    editor.EditValue(provider, null); 
} 

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

Может кто-нибудь помочь мне, как это решить, и как открыть свойство на двойном щелчке.

Спасибо за помощь

С наилучшими пожеланиями Боян

+0

Извините, но, пожалуйста, переформулируйте свой вопрос. Это очень трудно понять. – Kugel

+0

Например: при двойном щелчке по элементу управления ListView необходимо открыть редактор столбцов. – Bojan

ответ

0

Я не уверен, о целесообразности показа редактора по двойному щелчку, но один из другого способа можно был бы с помощью ActionLists аки SmartTag - пожалуйста, смотрите статью: http://msdn.microsoft.com/en-us/library/ms171829.aspx

Смежные вопросы