c# – 非法侵入事件

c# – 非法侵入事件,第1张

概述我有一个控件,它有一个事件处理程序.我通常在许多页面上使用此控件来管理引发的事件.但现在,只需要将此控件放入另一个控件并随后放在页面上.有没有办法从原始控件中侵入事件? 正常情况 public event EventHandler MyEvent;protected virtual void OnMyEvent(EventArgs e){ if(this.MyEvent != null 我有一个控件,它有一个事件处理程序.我通常在许多页面上使用此控件来管理引发的事件.但现在,只需要将此控件放入另一个控件并随后放在页面上.有没有办法从原始控件中侵入事件?

正常情况

>页>

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); }}

也许你想出一个更有活力的方法来做到这一点.

在任何情况下我猜,要走的路是在中间有一个班级.

相关文章

侵入性与非侵入性注射指数 Java平台的非侵入式APM - AWACS JavaScript - 好的非侵入式反垃圾邮件电子邮件混淆器? xaml - “非侵入式代码隐藏”是一种好的还是坏的做法? 获取非侵入式升级序列化C的私有数据成员 C非侵入式boost序列化boost :: smart_ptr 算法 - 强制平均密码/非侵入性但有意义的限制的尝试次数? c - 通用非侵入式缓存包装器 点击查看更多相关文章

转载注明原文:c# – 非法侵入事件 - 代码日志

解决方法 我建议创建自己的类,我称之为’SomenameEventManager’.

在您的父控件中,您可以通过调用方法(例如OnChanged)来引发事件.

示例代码:

public class SomenameEventManager{ChangedEventHandler(object sender,e); }}

也许你想出一个更有活力的方法来做到这一点.

在任何情况下我猜,要走的路是在中间有一个班级.

总结

以上是内存溢出为你收集整理的c# – 非法侵入事件全部内容,希望文章能够帮你解决c# – 非法侵入事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存