Type t = this.button1.GetType();
object eventClick = t.InvokeMember("Click",System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.GetField|System.Reflection.BindingFlags.Static|System.Reflection.BindingFlags.FlattenHierarchy,null,null , null);
// object eventClick = "Click";
System.Delegate click = this.Events[eventClick];
提示找不到Click事件我只是想知道一个事件同哪些方法有关联
object eventClick = t.InvokeMember("Click",System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.GetField|System.Reflection.BindingFlags.Static|System.Reflection.BindingFlags.FlattenHierarchy,null,null , null);
// object eventClick = "Click";
System.Delegate click = this.Events[eventClick];
提示找不到Click事件我只是想知道一个事件同哪些方法有关联
public event clickDelegate click;
click+= this.Events[eventClick];
using System.Reflection;class TestEvent
{ public event EventHandler MyEvent;
public void Test()
{
if (MyEvent != null)
MyEvent(this, EventArgs.Empty);
} static void Test1(Object sender, EventArgs e)
{
Console.WriteLine("Test1");
} static void Test2(Object sender, EventArgs e)
{
Console.WriteLine("Test2");
} void Test3(Object sender, EventArgs e)
{
Console.WriteLine("Test3");
} static void Main()
{
TestEvent te = new TestEvent();
te.MyEvent += new EventHandler(Test1);
te.MyEvent += new EventHandler(Test2);
te.MyEvent += new EventHandler(te.Test3); te.Test(); FieldInfo ei = te.GetType().GetField("MyEvent", BindingFlags.NonPublic|BindingFlags.Instance);
if (ei != null)
{
object o = ei.GetValue(te);
Console.WriteLine("{0}", o.GetType().Name);
MethodInfo mi = o.GetType().GetMethod("GetInvocationList");
if (mi != null)
{
Delegate[] list = (Delegate[])mi.Invoke(o,null);
foreach (Delegate g in list)
Console.WriteLine("target:{0}, method:{1}", g.Target, g.Method.Name);
}
}
}
}