Type btn = typeof(Button);
Type ctrl = typeof(Control);
PropertyInfo proInfo = btn.GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance);
EventHandlerList eventList = (EventHandlerList)proInfo.GetValue(button1, null);
//eventList[Control.EventClick]
FieldInfo fieldInfo = ctrl.GetField("EventClick", BindingFlags.NonPublic | BindingFlags.Static);
object key = fieldInfo.GetValue(null);
Delegate del = eventList[key];
Delegate[] delList = del.GetInvocationList();
foreach (Delegate item in delList)
...{
this.listBox1.Items.Add(item.Method.Name);
}
本文介绍如何使用C#反射机制获取按钮控件的点击事件处理程序列表,并列举所有与按钮点击事件关联的方法名称。
8644

被折叠的 条评论
为什么被折叠?



