Можно ли пройтись циклом по элементам управления?

Да, в языке программирования C# возможно пройти по элементам управления с помощью цикла. Однако, чтобы это сделать, необходимо использовать подходящий контейнер, который содержит коллекцию элементов управления, такие как панель (Panel), группа элементов (GroupBox), таблица (TableLayoutPanel) и т. д.

Представим, что у вас есть панель, содержащая несколько кнопок, и вам необходимо пройти по каждой кнопке и сделать какое-то действие. Для этого можно воспользоваться циклом foreach, который позволяет перебрать все элементы коллекции.

Пример кода:

foreach (Control control in panel1.Controls)
{
    if (control is Button)
    {
        // Действия, которые необходимо выполнить для каждой кнопки
        Button button = (Button)control;
        // Например, изменить текст кнопки
        button.Text = "Новый текст";
    }
}

В данном примере мы используем цикл foreach для перебора всех элементов управления в коллекции Controls контейнера panel1. Затем мы проверяем, является ли текущий элемент управления кнопкой с помощью условия "if (control is Button)". Если это так, то выполняются необходимые действия с кнопкой.

Использование цикла foreach в данном случае позволяет работать с каждым элементом управления независимо от их количества. Это удобно, если нужно применить одну и ту же логику к нескольким элементам.

Однако, стоит учесть, что если элементы управления вложены друг в друга, то эта логика не будет применяться к элементам, находящимся внутри других элементов управления. В таком случае может потребоваться рекурсивное обходить всех дочерних элементов.

Также стоит отметить, что в C# 8.0 и выше появились новые возможности, такие как использование оператора "using var" вместо явного приведения типа, что позволяет упростить и улучшить читаемость кода при работе с элементами управления в цикле.