Мне нужно пройти через все элементы управления и компоненты внутри пользовательского элемента управления, который я разрабатываю.
Я попробовал:
public void Traverse(Control cnt)
{
foreach (Control c in cnt.Controls)
{
if (c.HasChildren) Traverse(c);
Debug.Print(c.Name); // For debugging purpose only
// My code goes here
}
}
Проблема возникает, когда функции встречают ToolStrip : у него нет дочерних элементов, но элементы (ToolStripItemCollection: IList, ICollection, IEnumerable
).
Мне наплевать на тип: используя Reflection, мне нужно установить какое-то свойство, поэтому я чувствую себя хорошо, имея объекты в результате.
Как я могу получить имя каждого компонента, который находится внутри моего UserControl?
Спасибо