1

フォームに複数回追加できるカスタム コントロールがあります。このカスタム コントロールは、同じフォームに複数存在する可能性があります。これらのコントロールは、ユーザーによって追加および削除されます。ユーザーは、カスタム コントロール内の一部のコントロールを右クリックして、メニューを表示できます。

このメニューから項目を選択すると、フォームでイベントが発生する必要があります。カスタム イベントを作成しましたが、コントロールが動的に追加された場合、フォームがそれを認識しないため、使用できないことに気付きました。存在しないコントロールを参照するイベント ハンドラーを追加できません。フォームがそれを知る必要のないカスタム コントロールからフォーム上でイベントを発生させる他の方法はありますか? ところで、私のカスタム コントロールは FlowLayoutPanel に追加されます。助けてくれてありがとう!

4

2 に答える 2

3

コントロールを追加するときに、コードでイベントハンドラーを接続するだけです。

MyButton.Click += ButonClickEventHandler;
Page.Controls.Add(MyButton)
于 2012-03-29T15:58:31.750 に答える
0

Agree with Ben - otherwise, there are messy ways of doing it (depending on how your control is set up). For example INotifyPropertChanged Inerface or through Windows API messaging (and listener) - but unless you have a very strange set up, then as Ben said, simply add a handler when you add the control. You can always use a generic callback method and use custom event args to identify which has triggered it.

于 2012-03-29T16:40:38.267 に答える