Как открыть модальное диалоговое окно управления двойным щелчком мыши в c # - PullRequest
0 голосов
/ 25 января 2011

Я пишу элемент управления для c # (WinForms), и у меня есть одно свойство типа Collection.

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

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);
}

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

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

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

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

1 Ответ

0 голосов
/ 25 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...