私は c# (WinForms) のコントロールを作成しており、コレクション型のプロパティが 1 つあります。
ユーザーがこのプロパティを選択すると、「...」が付いたボタンが表示され、新しいモーダル ダイアログが開きます。これはすべて正常に機能します。作成しました:
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);
}
ご覧のとおり、ランダムなコードをいくつか入れましたが、もちろん機能しません。
これを解決する方法と、ダブルクリックでプロパティを開く方法を教えてください。
助けてくれてありがとう
敬具ボジャン