Перемещение элементов управления формы в C#

В этом примере показано, как обрабатывать элементы управления различными типами в форме.

Класс Control определяет свойство Controls, которое представляет собой набор, содержащий ссылки на элементы управления внутри элемента управления. Например, коллекция Controls формы содержит ссылки на элементы управления в форме.

Обратите внимание, что коллекция содержит только элементы управления непосредственно , содержащиеся в родительском элементе. Например, предположим, что форма содержит панель Panel, а панель содержит PictureBox. Затем панель Panel находится в коллекции Controls формы, но PictureBox нет. в этом случае PictureBox содержится в коллекции элементов управления Panel.

Прохождение через коллекцию Controls легко. Например, когда вы нажимаете кнопку «Все» этой программы, следующий код проходит через все элементы формы.

private void btnAll_Click(object sender, EventArgs e)
{
    lstControls.Items.Clear();
    foreach (Control control in Controls)
        lstControls.Items.Add(control.Name);
}

Этот код очищает ListBox программы и затем проходит через элементы формы, добавляя их имена в ListBox.

Это очень легко. Многие не понимают, что коллекция Controls имеет общий метод OfType, который фильтрует коллекцию и возвращает IEnumerable, содержащий объекты, которые соответствуют конкретный тип.

Например, когда вы нажимаете кнопку Button программы, выполняется следующий код.

private void btnButton_Click(object sender, EventArgs e)
{
    lstControls.Items.Clear();
    foreach (Button btn in Controls.OfType

Этот код очищает ListBox программы. Затем он использует метод Controls коллекции ControlType для прокрутки элементов формы Button формы, добавляя их имена в ListBox .

Метод OfType выбирает элементы управления, которые можно преобразовать в указанный вами тип. Например, при нажатии кнопки ScrollBar выполняется следующий код.

private void btnScrollBar_Click(object sender, EventArgs e)
{
    lstControls.Items.Clear();
    foreach (ScrollBar sbar in Controls.OfType())
        lstControls.Items.Add(sbar.Name);
}

Источник: http://csharphelper.com/blog/2017/03/loop-forms-controls-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector