WinForm实现移除控件某个事件的方法
作者:shichen2014 时间:2021-09-25 02:57:58
本文实例讲述了WinForm实现移除控件某个事件的方法,供大家参考借鉴一下。具体功能代码如下:
主要功能部分代码如下:
/// <summary>
/// 移除控件某个事件
/// </summary>
/// <param name="control">控件</param>
/// <param name="eventName">需要移除的控件名称eg:EventClick</param>
public static void RemoveControlEvent(this Control control, string eventName)
{
FieldInfo _fl = typeof(Control).GetField(eventName, BindingFlags.Static | BindingFlags.NonPublic);
if (_fl != null)
{
object _obj = _fl.GetValue(control);
PropertyInfo _pi = control.GetType().GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance);
EventHandlerList _eventlist = (EventHandlerList)_pi.GetValue(control, null);
if (_obj != null && _eventlist != null)
_eventlist.RemoveHandler(_obj, _eventlist[_obj]);
}
}
使用代码:
private void WinRemoveControlEventTest_Load(object sender, EventArgs e)
{
button1.RemoveControlEvent("EventClick");
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("button1_Click");
}
标签:WinForm,移除,控件,事件
0
投稿
猜你喜欢
Maven引入本地Jar包并打包进War包中的方法
2023-06-16 12:43:28
如何使用HttpClient发送java对象到服务器
2022-10-29 06:45:51
Java Annotation(Java 注解)的实现代码
2023-01-09 00:36:17
C#监控文件夹变化的方法
2023-03-26 09:39:38
深入讲解Java Maven配置
2022-07-01 05:09:21
Android利用Intent.ACTION_SEND进行分享
2023-07-10 05:02:18
Java 8 动态类型语言Lambda表达式实现原理解析
2023-08-05 09:04:25
Intellij IDEA配置Jetty的方法示例
2023-05-02 04:13:12
jdk动态代理源码分析过程
2023-03-01 05:05:59
一文看懂RabbitMQ消息丢失如何防止
2022-03-03 20:36:24
Android编程设置屏幕亮度的方法
2022-07-02 16:40:52
通过spring注解开发,简单测试单例和多例区别
2023-11-06 09:18:31
Spring-Bean创建对象的步骤方式详解
2023-04-12 22:00:47
Java 实现常见的非对称加密算法
2023-11-27 18:51:03
Java如何将ResultSet结果集遍历到List中
2022-07-01 06:30:46
详解SpringBoot禁用Swagger的三种方式
2022-02-28 23:49:08
C#生成带二维码的专属微信公众号推广海报实例代码
2023-04-04 23:30:57
微信公众号支付(二)实现统一下单接口
2023-01-12 21:29:18
Java中notify和notifyAll的区别及何时使用
2022-07-03 02:08:43
Android View背景选择器编写技巧
2023-09-16 21:37:43