zoukankan      html  css  js  c++  java
  • 如何取得某个菜单所绑定的所有事件处理程序

    ToolStripItem item = sender as ToolStripItem;

    PropertyInfo propertyInfo = (typeof(ToolStripItem)).GetProperty("Events", BindingFlags.Instance | BindingFlags.NonPublic);
    EventHandlerList eventHandlerList = (EventHandlerList)propertyInfo.GetValue(item, null);
    FieldInfo fieldInfo = (typeof(ToolStripItem)).GetField("EventClick", BindingFlags.Static | BindingFlags.NonPublic);
    Delegate d = eventHandlerList[fieldInfo.GetValue(null)];
    if (d != null)
    {
        foreach (Delegate temp in d.GetInvocationList())
        {

    //这里已经取得了所有Click事件绑定的处理程序,可以做一些事情。例如下面的代码是撤销所有的事件注册
            item.Click -= temp as EventHandler;
        }
    }

  • 相关阅读:
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    简单DP + 高精
    高精度计算
    树 (tree)
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1497392.html
Copyright © 2011-2022 走看看