我有一个控件,它有一个事件处理程序.我通常在许多页面上使用此控件来管理引发的事件.但现在,只需要将此控件放入另一个控件并随后放在页面上.有没有办法从原始控件中侵入事件?
正常情况
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’.
在您的父控件中,您可以通过此类直接订阅/取消订阅.
在您的子控件中,您可以通过调用方法(例如OnChanged)来引发事件.
示例代码:
public class SomeNameEventManager { ChangedEventHandler(object sender,EventArgs e); public static event ChangedEventHandler Changed; public static void OnChanged(EventArgs e) { Changed(this,e); } }
在任何情况下我猜,要走的路是在中间有一个班级.
相关文章
转载注明原文:c# – 非法侵入事件 - 代码日志
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。