C # tabindex - обобщение (настольное приложение) - PullRequest
1 голос
/ 02 сентября 2010

У меня есть несколько текстовых полей. Я хотел бы каждый раз указывать пользователю следующее текстовое поле при нажатии клавиши ввода. В текстовых полях Tabindex настроен правильно.

Я получил что-то вроде:

 private void textBox_Description_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            e.Handled = true;
            setFocusOnNextElement(sender);
        }
    } 

Как должен выглядеть setFocusOnNextElement? Если я хочу сделать это вообще. Я мог бы разобрать каждый элемент управления и найти, что будет дальше, но у меня есть ощущение, что это можно сделать лучше.

1 Ответ

5 голосов
/ 02 сентября 2010

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

private static void SetFocusOnNextElement(Control control)
{
    Control target = Control.GetNextControl(control, true);

    if (target != null) target.Focus();
}

Затем вызывайте его так:

SetFocusOnNextElement((Control)sender);
...