1

我有一个可以多次添加到表单的自定义控件。在同一个窗体上可以多次出现此自定义控件。这些控件由用户添加和删除。用户可以右键单击自定义控件内的某个控件以显示菜单。

从这个菜单中选择一个项目时,应该在表单上引发一个事件。我做了一个自定义事件,并意识到如果控件是动态添加的,它就无法使用,因为表单不知道它。我无法添加引用不存在的控件的事件处理程序。是否有其他方法可以从不需要表单知道的自定义控件在表单上引发事件?顺便说一句,我的自定义控件已添加到 FlowLayoutPanel。谢谢您的帮助!

4

2 回答 2

3

添加控件时,您只需在代码中连接事件处理程序,例如

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

同意 Ben 的观点 - 否则,会有一些混乱的方法(取决于您的控制设置方式)。例如INotifyPropertChanged Inerface或通过 Windows API 消息传递(和侦听器) - 但除非您有一个非常奇怪的设置,否则正如 Ben 所说,只需在添加控件时添加一个处理程序。您始终可以使用通用回调方法并使用自定义事件参数来识别触发它的原因。

于 2012-03-29T16:40:38.267 回答