Как выбрать элемент управления с самым низким tabindex? - PullRequest
0 голосов
/ 02 октября 2009

Учитывая элемент управления, который имеет дочерние элементы управления. Как вы сосредотачиваетесь на дочернем контроле с самым низким индексом табуляции, не просматривая все элементы управления?

Ответы [ 2 ]

1 голос
/ 02 октября 2009

Это решение не имеет требуемой производительности, но это "легкий путь". Может быть, есть «более легкий путь», о котором я ничего не знаю.

var firstControl = this.AllChildControls().OrderBy(m => m.TabIndex).First();
firstControl.Focus();

Фрагмент кода зависит от следующего метода расширения.

/// <summary>
/// Preforms a preorder iteration through all children of this control, recursively.
/// </summary>
/// <returns></returns>
public static IEnumerable<Control> AllChildControls(this Control control)
{
   foreach (Control child in control.Controls)
   {
        yield return child;
        foreach (var grandchild in child.AllChildControls())
            yield return grandchild;
    }
}
1 голос
/ 02 октября 2009

Я сделаю это, просматривая элементы управления, в этом нет ничего плохого. Это, наверное, самое простое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...