Alex Rivera | Logout

How to remove all event handlers from an event

Asked 2008-09-18T11:34:23.783
449

To create a new event handler on a control you can do this

c.Click += new EventHandler(mainFormButton_Click);

or this

c.Click += mainFormButton_Click;

and to remove an event handler you can do this

c.Click -= mainFormButton_Click;

But how do you remove all event handlers from an event?

Edit
Report

1 Answer

-2

Well, here there's another solution to remove an asociated event (if you already have a method for handling the events for the control):

EventDescriptor ed = TypeDescriptor.GetEvents(this.button1).Find("MouseDown",true);            
Delegate delegate = Delegate.CreateDelegate(typeof(EventHandler), this, "button1_MouseDownClicked");
if(ed!=null) 
    ed.RemoveEventHandler(this.button1, delegate);
answered 2011-10-26T07:05:46.733

Your Answer