我现在有个事件,如:DoubleClick += new System.EventHandler(this.Form1_DoubleClick);
如何才能取消事件和EventHandler的挂钩呢?是不是如下:
DoubleClick -= new System.EventHandler(this.Form1_DoubleClick);如果OK,那么我现在想问的是,如果我不清楚DoubleClick 事件究竟与哪个或 哪几个EventHandler挂钩了,我如何才能注销掉所有挂在DoubleClick 上面的EventHandler?
如何才能取消事件和EventHandler的挂钩呢?是不是如下:
DoubleClick -= new System.EventHandler(this.Form1_DoubleClick);如果OK,那么我现在想问的是,如果我不清楚DoubleClick 事件究竟与哪个或 哪几个EventHandler挂钩了,我如何才能注销掉所有挂在DoubleClick 上面的EventHandler?
学习学习
using System;
using System.Reflection;
using System.Security;class MyEventExample
{
public static void Main()
{
try
{ // Creates a bitmask based on BindingFlags.
BindingFlags myBindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
Type myTypeBindingFlags = typeof(System.Windows.Forms.Button);
EventInfo myEventBindingFlags = myTypeBindingFlags.GetEvent("DoubleClick", myBindingFlags);
if(myEventBindingFlags != null)
{
Console.WriteLine("Looking for the Click event in the Button class with the specified BindingFlags.");
Console.WriteLine(myEventBindingFlags.ToString());
}
else
Console.WriteLine("The Click event is not available with the Button class.");
}
catch(SecurityException e)
{
Console.WriteLine("An exception occurred.");
Console.WriteLine("Message :"+e.Message);
}
catch(ArgumentNullException e)
{
Console.WriteLine("An exception occurred.");
Console.WriteLine("Message :"+e.Message);
}
catch(Exception e)
{
Console.WriteLine("The following exception was raised : {0}",e.Message);
}
}
}