By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,625 Members | 1,267 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,625 IT Pros & Developers. It's quick & easy.

How getting eventhandler attached to an event?

P: n/a
Good morning

I have this lines:

AddHandler MyControl1.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl2.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl3.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl4.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl5.Parent.Paint, AddressOf PaintParentHandler

Is there a way for getting (at runtime) the list of eventhandlers attached
to an event? In my case, a reference to PaintParentHandler?

Since MyControl1, MyControl2, MyControl3, MyControl4 and MyControl5 are
inside the SAME parent, I need this in order to avoid multiple (useless)
calls to PaintParentHandler.

Thank you.

C.

-------------------------------------------
Carlo, MCP (Windows Based Applications)
ca************@gmail.com

May 6 '06 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Rather than go through all that, can you use a static or global variable to
lock out successive semi-concurrent attempts?

For example:

"
SUB EVENTHANDLER()
STATIC blnIsRunning as boolean
If blnIsRunning then Return
blnIsRunning = True
'remainder of code execution for this handler
blnIsRunning = False
END SUB
"
- or -

"
PUBLIC blnIsRunning as boolean 'a PRIVATE dimension may be more
appropriate...

SUB EVENTHANDLER()
If blnIsRunning then Return
blnIsRunning = True
'remainder of code execution for this handler
blnIsRunning = False
END SUB
"

Cheers!

~ Duane Phillips

"Carlo (mcp)" <ca************@gmail.com> wrote in message
news:eO**************@TK2MSFTNGP03.phx.gbl...
Good morning

I have this lines:

AddHandler MyControl1.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl2.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl3.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl4.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl5.Parent.Paint, AddressOf PaintParentHandler

Is there a way for getting (at runtime) the list of eventhandlers attached
to an event? In my case, a reference to PaintParentHandler?

Since MyControl1, MyControl2, MyControl3, MyControl4 and MyControl5 are
inside the SAME parent, I need this in order to avoid multiple (useless)
calls to PaintParentHandler.

Thank you.

C.

-------------------------------------------
Carlo, MCP (Windows Based Applications)
ca************@gmail.com

May 7 '06 #2

P: n/a
Hi Duane
thank you for your suggestion. Unfortunately, it doen not applies to my
case. I don't need to avoid the concurrent execution of a procedure. I
simply need to have just one procedure attached to an event. What I need, in
other words, is a single call to AddHandler, if a handler is already set.
Thank you.

--
-------------------------------------------
Carlo, MCP (Windows Based Applications)
ca************@gmail.com
"Duane Phillips" <du************@askme.askme> wrote in message
news:wN******************************@giganews.com ...
Rather than go through all that, can you use a static or global variable
to lock out successive semi-concurrent attempts?

For example:

"
SUB EVENTHANDLER()
STATIC blnIsRunning as boolean
If blnIsRunning then Return
blnIsRunning = True
'remainder of code execution for this handler
blnIsRunning = False
END SUB
"
- or -

"
PUBLIC blnIsRunning as boolean 'a PRIVATE dimension may be more
appropriate...

SUB EVENTHANDLER()
If blnIsRunning then Return
blnIsRunning = True
'remainder of code execution for this handler
blnIsRunning = False
END SUB
"

Cheers!

~ Duane Phillips

"Carlo (mcp)" <ca************@gmail.com> wrote in message
news:eO**************@TK2MSFTNGP03.phx.gbl...
Good morning

I have this lines:

AddHandler MyControl1.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl2.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl3.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl4.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl5.Parent.Paint, AddressOf PaintParentHandler

Is there a way for getting (at runtime) the list of eventhandlers
attached to an event? In my case, a reference to PaintParentHandler?

Since MyControl1, MyControl2, MyControl3, MyControl4 and MyControl5 are
inside the SAME parent, I need this in order to avoid multiple (useless)
calls to PaintParentHandler.

Thank you.

C.

-------------------------------------------
Carlo, MCP (Windows Based Applications)
ca************@gmail.com


May 7 '06 #3

P: n/a
Hello, Carlo,

You might be able to get the information you need by iterating through
the collection returned by MyControln.Parent.GetType.GetEvents(). Look
for a case where the Name property of the matches "Paint".

Cheers,
Randy
Carlo (mcp) wrote:
Good morning

I have this lines:

AddHandler MyControl1.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl2.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl3.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl4.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl5.Parent.Paint, AddressOf PaintParentHandler

Is there a way for getting (at runtime) the list of eventhandlers attached
to an event? In my case, a reference to PaintParentHandler?

Since MyControl1, MyControl2, MyControl3, MyControl4 and MyControl5 are
inside the SAME parent, I need this in order to avoid multiple (useless)
calls to PaintParentHandler.

Thank you.

C.

-------------------------------------------
Carlo, MCP (Windows Based Applications)
ca************@gmail.com

May 8 '06 #4

P: n/a

Carlo (mcp) wrote:
Good morning

I have this lines:

AddHandler MyControl1.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl2.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl3.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl4.Parent.Paint, AddressOf PaintParentHandler
AddHandler MyControl5.Parent.Paint, AddressOf PaintParentHandler

Is there a way for getting (at runtime) the list of eventhandlers attached
to an event? In my case, a reference to PaintParentHandler?
No. The list of event subscribers is a proivate implementation detail
of the Control. It doens't have to tell you who is subscribed.

Since MyControl1, MyControl2, MyControl3, MyControl4 and MyControl5 are
inside the SAME parent, I need this in order to avoid multiple (useless)
calls to PaintParentHandler.


Rough method:

- keep a list of controls
- for each MyControl
- is MyControl.Parent in the list?
- if it is, then we are already hooked to its paint event, so
do nothing
- if it isn't, then hook to its Paint event, and add it to the
list
--
Larry Lard
Replies to group please

May 8 '06 #5

P: n/a
Sorry for the delay in saying thank you to the people that replied me!
Carlo
--
-------------------------------------------
Carlo, MCP (Windows Based Applications)
ca************@gmail.com
"Larry Lard" <la*******@hotmail.com> wrote in message
news:11**********************@g10g2000cwb.googlegr oups.com...

Carlo (mcp) wrote:
Good morning

I have this lines:

AddHandler MyControl1.Parent.Paint, AddressOf
PaintParentHandler
AddHandler MyControl2.Parent.Paint, AddressOf
PaintParentHandler
AddHandler MyControl3.Parent.Paint, AddressOf
PaintParentHandler
AddHandler MyControl4.Parent.Paint, AddressOf
PaintParentHandler
AddHandler MyControl5.Parent.Paint, AddressOf
PaintParentHandler

Is there a way for getting (at runtime) the list of eventhandlers
attached
to an event? In my case, a reference to PaintParentHandler?


No. The list of event subscribers is a proivate implementation detail
of the Control. It doens't have to tell you who is subscribed.

Since MyControl1, MyControl2, MyControl3, MyControl4 and MyControl5 are
inside the SAME parent, I need this in order to avoid multiple (useless)
calls to PaintParentHandler.


Rough method:

- keep a list of controls
- for each MyControl
- is MyControl.Parent in the list?
- if it is, then we are already hooked to its paint event, so
do nothing
- if it isn't, then hook to its Paint event, and add it to the
list
--
Larry Lard
Replies to group please

May 18 '06 #6

This discussion thread is closed

Replies have been disabled for this discussion.