程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 如何取得某個菜單所綁定的所有事件處理程序

如何取得某個菜單所綁定的所有事件處理程序

編輯:關於ASP.NET

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;
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved