Предполагая, что у вас есть объект menuStrip
и меню имеет только один уровень глубины, используйте:
ToolStripMenuItem item = menuStrip.Items
.OfType<ToolStripMenuItem>()
.SelectMany(it => it.DropDownItems.OfType<ToolStripMenuItem>())
.SingleOrDefault(n => n.Name == "MyMenu");
Для более глубоких уровней меню добавьте больше операторов SelectMany в оператор.
если вы хотите найти все пункты меню в полосе, используйте
ToolStripMenuItem item = menuStrip.Items
.Find("MyMenu",true)
.OfType<ToolStripMenuItem>()
.Single();
Однако убедитесь, что у каждого меню есть свое имя, чтобы исключение не вызывалось дубликатами клавиш.
Чтобы избежать исключений, вы можете использовать FirstOrDefault
вместо SingleOrDefault
/ Single
или просто вернуть последовательность, если у вас могут быть Name
дубликаты.