Я обнаружил, что, пытаясь найти владеющую инструментальную полоску предмета, это было не так просто, как просто посмотреть на владельца предмета. Ниже приведен псевдокод, который, я думаю, должен работать. Кто-нибудь может увидеть какие-либо проблемы с этим или он должен работать во всех случаях?
(1) Является ли тип Item.Owner ToolStrip?
(2) Да, вернуть товар. Владелец
(3) Нет, Item = Item.OwnerItem. Перейти к (1).
ETA:
Я бы хотел сделать тест общим тестом. Поэтому вместо того, чтобы тестировать ToolStrip, я должен тестировать ToolStrip, MenuStrip, StatusStrip или ContextMenuStrip.
Что отличает вышеупомянутые 4 от других производных элементов управления, таких как ToolStripDropDown, ToolStripDropDownMenu и ToolStripOverflow?
ETA2: Игнорировать, абсолютный карп!
Насколько я могу судить, это как-то связано с Control.TopLevelControl. Три вышеуказанных элемента управления, которые нельзя добавить в форму, возвращают элемент TopLevelControl. 4 допустимых элемента управления ничего не возвращают для TopLevelControl перед добавлением в форму, а затем и саму форму после добавления.