Получить доступные элементы управления из формы - PullRequest
0 голосов
/ 17 марта 2009

Как получить доступные элементы управления из формы Windows Forms , используя C #?

Ответы [ 3 ]

20 голосов
/ 20 марта 2009

Или решение ProfK с перечислимым синтаксисом:

public static IEnumerable<Control> GetControls(Control form) {
    foreach (Control childControl in form.Controls) {   // Recurse child controls.
        foreach (Control grandChild in GetControls(childControl)) {
            yield return grandChild;
        }
        yield return childControl;
    }
}
5 голосов
/ 19 марта 2009

Попробуйте этот метод в вашей форме. Он рекурсивно получит все элементы управления вашей формы и их потомков:

public static List<Control> GetControls(Control form)
{
    var controlList = new List<Control>();

    foreach (Control childControl in form.Controls)
    {
        // Recurse child controls.
        controlList.AddRange(GetControls(childControl));
        controlList.Add(childControl);
    }
    return controlList;
}

Затем назовите его с:

List<Control> availControls = GetControls(this);
1 голос
/ 17 марта 2009

Я думаю, что вы имеете в виду все элементы управления в форме. Так что просто вы можете использовать Controls свойство внутри вашего объекта формы.

foreach(Control c in this.Controls)
{
   //TODO:
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...