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");
    }
    
  • 相关阅读:
    小菜菜mysql练习50题解析——数据准备
    C语言(数据结构)——概述
    运行 jar
    Hive 语句
    java14 IO流缓冲区 input output
    java 14 IO流
    java 14 图片的读取和写入
    java 集合的基础2
    java 13 hashmao的entryset()
    java 13 集合的基础
  • 原文地址:https://www.cnblogs.com/arxive/p/5885010.html
Copyright © 2011-2022 走看看