zoukankan      html  css  js  c++  java
  • [转] WinForm实现移除控件某个事件的方法

    原文 WinForm实现移除控件某个事件的方法

    本文实例讲述了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");
    }
    
  • 相关阅读:
    最短路径算法
    XMLhelper
    关于NuDaqPci 数据采集
    批处理常用命令及用法大全
    c#智能感知(设置)及实现
    单片机串行通信全解析
    Esp8266
    使用NOOBS给树莓派安装系统Raspbian
    命令提示符编译java
    javaWeb使用POI操作Excel
  • 原文地址:https://www.cnblogs.com/arxive/p/5885010.html
Copyright © 2011-2022 走看看