Use reflection to remove and add events

N

niteshs

Hi all I want to be able to disable all events for controls on my form
at runtime based on a certain condition and then re-add these events
back.
I have been able to view events through the EventInfo[] class

EventInfo[] events =
comboBox1.GetType().GetEvent("SelectedIndexChanged");
and then looping through these.

Type mydel =
comboBox1.GetType().GetEvent("SelectedIndexChanged").EventHandlerType;

I need to be able to disable all SelectedIndexChanged events
I need to do something like events.RemoveEventHandler(combobox)

Cheers nitesh
 
B

Bob Powell [MVP]

You can't actually add and remove events from the classes. You can change
the list of properties, events, methods and so-on seen by the reflection
API's by using the ICustomTypeDescriptor interface. I have developed classes
that provide different property lists depending on the settings of their own
properties.


--
Bob Powell [MVP]
Visual C#, System.Drawing

Ramuseco Limited .NET consulting
http://www.ramuseco.com

Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm

Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm

All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top