c# – 非法侵入事件
发布时间:2020-12-15 22:06:02 所属栏目:百科 来源:网络整理
导读:我有一个控件,它有一个事件处理程序.我通常在许多页面上使用此控件来管理引发的事件.但现在,只需要将此控件放入另一个控件并随后放在页面上.有没有办法从原始控件中侵入事件? 正常情况 页 public event EventHandler MyEvent;protected virtual void OnMyEv
我有一个控件,它有一个事件处理程序.我通常在许多页面上使用此控件来管理引发的事件.但现在,只需要将此控件放入另一个控件并随后放在页面上.有没有办法从原始控件中侵入事件?
正常情况
public event EventHandler MyEvent; protected virtual void OnMyEvent(EventArgs e) { if(this.MyEvent != null) this.MyEvent(this,e); } Page.aspx <ASP:Control1 id="ctrl1" runat="server" OnMyEvent="ctrl1_MyEvent" /> Page.aspx.cs protected void ctrl1_MyEvent(object sender,EventArgs e) { .... } 特殊情况
最佳答案
我建议创建自己的类,我称之为’SomeNameEventManager’.
在您的父控件中,您可以通过此类直接订阅/取消订阅. 示例代码: public class SomeNameEventManager { ChangedEventHandler(object sender,EventArgs e); public static event ChangedEventHandler Changed; public static void OnChanged(EventArgs e) { Changed(this,e); } } 也许你想出一个更有活力的方法来做到这一点. 在任何情况下我猜,要走的路是在中间有一个班级. 相关文章
点击查看更多相关文章
转载注明原文:c# – 非法侵入事件 - 代码日志 解决方法
我建议创建自己的类,我称之为’SomeNameEventManager’.
在您的父控件中,您可以通过调用方法(例如OnChanged)来引发事件. 示例代码: public class SomeNameEventManager { ChangedEventHandler(object sender,e); } } 也许你想出一个更有活力的方法来做到这一点. 在任何情况下我猜,要走的路是在中间有一个班级. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |