Getting the highest owner of a ToolStripDropDownItem
Posted
by andyperfect
on Stack Overflow
See other posts from Stack Overflow
or by andyperfect
Published on 2010-06-11T21:34:13Z
Indexed on
2010/06/12
3:53 UTC
Read the original article
Hit count: 358
I'm currently working on a project in which at one point, the user may right click a button which brings up a contextMenuStrip. I am already able to find the owner accurately from that strip, and manipulate the button clicked as follows:
Dim myItem As ToolStripMenuItem = CType(sender, ToolStripMenuItem)
Dim cms As ContextMenuStrip = CType(myItem.Owner, ContextMenuStrip)
Dim buttonPressed As DataButton = DirectCast(cms.SourceControl, DataButton)
But now for the tricky part. Within this contextmenuStrip, I have a DropDown menu with multiple items in there. I would assume you would be able to work your way up the ladder doing casts like above in the manner of
ToolStripDrowpDownItem > ToolStripDropDownMenu > ToolStripMenuItem > ContextMenuStrip
Unfortunately, when I try to get the sourcecontrol from this menuStrip, it return Nothing. Any ideas on how I can get the button that was pressed from this toolStripMenuItem? My current code is as follows (in which the sourceControl is Nothing)
Dim myItem As ToolStripDropDownItem = CType(sender, ToolStripDropDownItem)
Dim dropDown As ToolStripDropDownMenu = CType(myItem.Owner, ToolStripDropDownMenu)
Dim menuItem As ToolStripMenuItem = CType(dropDown.OwnerItem, ToolStripMenuItem)
Dim cms As ContextMenuStrip = CType(menuItem.Owner, ContextMenuStrip)
Dim buttonPressed As DataButton = DirectCast(cms.SourceControl, DataButton)
Any ideas on how to go about doing what I did in that first method, but just working my way up from further down the ladder?
© Stack Overflow or respective owner