当前位置: 首页 > news >正文

C#中删除控件的事件的方法

需要事先引用

 

 

using System.ComponentModel;
using System.Reflection;       
  ///   <summary>
        
///  删除指定控件的指定事件
        
///   </summary>
        
///   <param name="control"></param>
        
///   <param name="eventname"></param>
         public  void ClearEvent(System.Windows.Forms.Control control,  string eventname)
        {
             if (control ==  nullreturn;
             if ( string.IsNullOrEmpty(eventname))  return;

            BindingFlags mPropertyFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic;
            BindingFlags mFieldFlags = BindingFlags.Static | BindingFlags.NonPublic;
            Type controlType =  typeof(System.Windows.Forms.Control);
            PropertyInfo propertyInfo = controlType.GetProperty( " Events ", mPropertyFlags);
            EventHandlerList eventHandlerList = (EventHandlerList)propertyInfo.GetValue(control,  null);
            FieldInfo fieldInfo = ( typeof(System.Windows.Forms.Control)).GetField( " Event " + eventname, mFieldFlags);
            Delegate d = eventHandlerList[fieldInfo.GetValue(control)];

             if (d ==  nullreturn;
            EventInfo eventInfo = controlType.GetEvent(eventname);

             foreach (Delegate dx  in d.GetInvocationList())
                eventInfo.RemoveEventHandler(control, dx);

        }

 

相关文章:

  • VSS管理
  • php时间戳与date格式转换
  • Linq to entity 笔记
  • ARP协议的安全问题和安全威胁
  • keepalived配置文件解析系列之(一)keepalived简介及配置文件介绍
  • 如何学习吉日嘎拉的走火入魔C#.NET通用权限管理系统组件源码?
  • Firefox 7正式发布
  • 高效的使用stl::map和std::set
  • 深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP
  • 申请Google Map API Key
  • 系统集成项目管理工程师
  • Xweibo插件版20110809重要补丁及下载
  • word-break
  • 一种通过JS执行JAVA表达式的方法
  • (2)MFC+openGL单文档框架glFrame
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 2017届校招提前批面试回顾
  • ComponentOne 2017 V2版本正式发布
  • ES10 特性的完整指南
  • in typeof instanceof ===这些运算符有什么作用
  • MaxCompute访问TableStore(OTS) 数据
  • PHP 小技巧
  • Rancher-k8s加速安装文档
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue-loader 源码解析系列之 selector
  • WebSocket使用
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 理解在java “”i=i++;”所发生的事情
  • 力扣(LeetCode)357
  • 每天一个设计模式之命令模式
  • 配置 PM2 实现代码自动发布
  • 收藏好这篇,别再只说“数据劫持”了
  • 首页查询功能的一次实现过程
  • 我有几个粽子,和一个故事
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 7行Python代码的人脸识别
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • $.ajax()方法详解
  • (1)(1.13) SiK无线电高级配置(六)
  • (12)Hive调优——count distinct去重优化
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (六)Hibernate的二级缓存
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)创业家杂志:UCWEB天使第一步
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .cfg\.dat\.mak(持续补充)
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Micro Framework初体验
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)