2012-03-29 88 views
1

我有一个可以多次添加到表单的自定义控件。这个自定义控件在同一个表单上可能会出现多次。这些控件是由用户添加和删除的。用户可以右键单击自定义控件中的某个控件来显示菜单。从自定义控件中增加事件动态添加到表格

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

回答

3

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

MyButton.Click += ButonClickEventHandler; 
Page.Controls.Add(MyButton) 
+0

谢谢,我认为这会比这更复杂。这完全解决了我的问题。 – Fjodr 2012-03-29 18:13:14

0

同意本 - 否则,有这样做的麻烦方式(取决于如何控制设置)。例如INotifyPropertChanged Inerface或通过Windows API消息传递(和侦听器) - 但除非你有一个非常奇怪的设置,然后正如Ben所说,添加控件时只需添加一个处理程序。您始终可以使用通用回调方法并使用自定义事件参数来识别哪个触发了它。