У меня есть форма окна, в которой есть пара полей со списком.
Что мне нужно сделать, так это чтобы в каждом поле со списком, в котором есть элементы, их выбранный индекс был установлен на 0. Вместо того чтобы делать каждое поле со списком по имени вручную, есть функция, которая возвращает все дочерние элементы по типу. Или получить всех детей и сравнить их тип с типом элемента со списком?
@ noah, поначалу ваш оригинальный код не работал, но все, что мне было нужно, это напоминание о том, что дети называются элементами управления (спасибо).
С этим я сделал рекурсивную функцию, которая устанавливает все поля со списком, а не только прямые потомки основной формы:
private void recursiveSetComboBox(Control element)
{
foreach (Control a in element.Controls)
{
if (a.Controls.Count != 0)
recursiveSetComboBox(a);
else if (a.GetType().Name == "ComboBox")
{
ComboBox b = (ComboBox)a;
b.SelectedIndex = 0;
}
}
}
recursiveSetComboBox(this);