ユーザーコントロールイベントのデザインタイム表示
-
02-07-2019 - |
質問
System.Windows.Forms.UserControlから継承するWinFormsコントロールを作成しました...コントロールのカスタムイベントがあり、コントロールのコンシューマーに表示させたいと思います。設計時に[プロパティ]ウィンドウの[イベント]タブにイベントを実際に表示することができません。つまり、イベントを割り当てる唯一の方法はプログラムで記述することです
myUserControl.MyCustomEvent += new MyUserControl.MyCustomEventHandler(EventHandlerFunction);
これは私にとっては問題ありませんが、他の誰かが私のUserControlを使用するようになると、これらのイベントが存在することを知りません(ライブラリのドキュメントを読まない限り...そうです)。 Intellisenseを使用してイベントが表示されることは知っていますが、プロパティウィンドウにも表示できれば素晴らしいと思います。
解決
イベントが公開されていることを確認してください。たとえば...
[Browsable(true)]
public event EventHandler MyCustomEvent;
他のヒント
デリゲートを使用したソリューション。たとえば、アイテム追加イベントを処理するカスタムListViewに使用しました: デリゲートを宣言します:
public delegate void ItemAddedHandler(object sender, ItemEventArgs e)
次にデリゲートを使用するイベントを宣言します:
[Browsable(true)]
public event ItemAddedHandler ItemAdded;
注:ItemEventArgsはカスタムEventArgsです
希望はあなたを助けることができ、私のためにうまくいく
所属していません StackOverflow