I found that while trying to find the owning toolstrip of an item, it wasn't a easy as just looking at the owner of the item. Below is some pseudo code that I think should work. Can anyone see any problems with this or should it work in all cases?
(1) Is type of Item.Owner a ToolStrip?
(2) Yes, Return Item.Owner
(3) No, Item = Item.OwnerItem. Go to (1).
ETA:
I'd like to make the test a general test. So instead of testing for ToolStrip, I should be testing for ToolStrip, MenuStrip, StatusStrip or ContextMenuStrip.
What makes the 4 mentioned above different to other ToolStrip derived controls such as ToolStripDropDown, ToolStripDropDownMenu and ToolStripOverflow?
ETA2: Ignore, absolute carp!
As far a I can tell, it's something to do with Control.TopLevelControl. The 3 controls above that can't be added to a form return a TopLevelControl of themselves. The 4 valid controls return nothing for TopLevelControl, before being added to a form, and then the form itself, after being added.