Я пишу элемент управления для 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);
}
Как видно, я поставил какой-то случайный код и, конечно, не работаю.
Может кто-нибудь помочь мне, как решить эту проблему и как открыть свойство по двойному щелчку.
Спасибо за помощь
С наилучшими пожеланиями
Боян