Solved

control's event handler

Posted on 2012-03-24
10
351 Views
Last Modified: 2012-03-26
Hi all,

I have a variable of type Button that I get from a call back on a form.
Just having this variable, is there a way to find the button's Click event
handler?
Just to be clear - when I assign it myself, like so:

Button b = new Button();
b.Click += new EventHandler(this.button_Click);

I obviously know that button_Click function gets called -
that's what I need to find out for the variable.

Thank you,

Gene
0
Comment
Question by:Mi-Jack
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
10 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 37762709
I don't understand your question, and what you mean by "that's what I need to find out for the variable"
0
 

Author Comment

by:Mi-Jack
ID: 37762741
I have a variable of type Button, and I need to find out its OnClick EventHandler(s)
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 37763001
Do you mean typeof(Button).GetType().GetEvents()?
0
Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.

 

Author Comment

by:Mi-Jack
ID: 37763180
I mean that particular Button reference to which I have, not Button as a class
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 37765454
That would be slightly different:

button1.GetType().GetEvents()?

What do you to know from the EventInfo?
0
 

Author Comment

by:Mi-Jack
ID: 37765674
Looks like I'm getting EventHandlerType, but not an EventHandler handler, so I could remove an event, like this:

button1.Click -= new EventHandler(<EventHandler >);
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 37765916
Where do you need to do this?  Do you have a reference to the control, and you need to do it dynamically?
0
 

Author Comment

by:Mi-Jack
ID: 37766632
The control is in a dll.
By iterating the Controls collection, I find the control I need, and I need to replace the control's Click EventHandler with my own.
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 37766981
That is possible with reflection.  The steps are shown in the code from this CodeProject article:

Removing Event Handlers using Reflection
http://www.codeproject.com/Articles/103542/Removing-Event-Handlers-using-Reflection
0
 

Author Comment

by:Mi-Jack
ID: 37767576
Thank you
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Finding and deleting duplicate (picture) files can be a time consuming task. My wife and I, our three kids and their families all share one dilemma: Managing our pictures. Between desktops, laptops, phones, tablets, and cameras; over the last decade…

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question