栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从事件中删除所有事件处理程序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从事件中删除所有事件处理程序

我在MSDN论坛上找到了解决方案。以下示例代码将从中删除所有

Click
事件
button1

public partial class Form1 : Form{        public Form1()        { InitializeComponent(); button1.Click += button1_Click; button1.Click += button1_Click2; button2.Click += button2_Click;        }        private void button1_Click(object sender, EventArgs e)        { MessageBox.Show("Hello");        }        private void button1_Click2(object sender, EventArgs e)        { MessageBox.Show("World");        }        private void button2_Click(object sender, EventArgs e)        { RemoveClickEvent(button1);        }        private void RemoveClickEvent(Button b)        { FieldInfo f1 = typeof(Control).GetField("EventClick",      BindingFlags.Static | BindingFlags.NonPublic); object obj = f1.GetValue(b); PropertyInfo pi = b.GetType().GetProperty("Events",       BindingFlags.NonPublic | BindingFlags.Instance); EventHandlerList list = (EventHandlerList)pi.GetValue(b, null); list.RemoveHandler(obj, list[obj]);        }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号