繁体   English   中英

将自定义控件中的事件动态添加到表单中

[英]Raising event from custom control added dynamically to the form

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM