Подтвердить что ты не робот

Как настроить фокус на элемент управления в приложении Windows Forms?

В приложении Windows Forms, , когда, я пишу код для установки фокуса на элемент управления как во время запуска приложения, так и после вызова функции?

Например, если у меня есть DropDownList, TextBox и четыре кнопки, и я хочу, чтобы Focus был установлен в DropDownList, где я пишу свой код?

Чтобы установить фокус на конкретный элемент управления при запуске приложения, я могу установить индекс табуляции в DropDown (с минимальным значением, в предположении, что свойство TabStop имеет значение True).

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

MyDropDownList.Focus()

Вопрос

NB: вопрос о где, а не как <? >

4b9b3361

Ответ 1

Напротив, самым простым решением является правильное задание свойства TabIndex, так что ваш элемент управления MyDropDownList имеет самый низкий индекс. Следующий подход - сделать это в конструкторе. Но вы должны использовать Select(), метод Focus() еще не может работать, потому что элемент управления не становится видимым дольше.

Public Sub New()
    InitializeComponent()
    MyDropDownList.Select()
End Sub

Работает и в событии Load. Focus() начинает работать в событии Shown.

Ответ 2

Когда родительское окно активировано (то есть, когда оно получает событие "Активировано"), установите фокус на дочерний элемент управления, в котором вы хотите расположить фокус.

private void Form_AddAppID_Activated(object sender, EventArgs e)
{
    textID.Focus();
}

Обратите внимание, что порядок вкладок не имеет никакого отношения к тому, где начинается фокус. Вместо этого порядок табуляции используется для определения способа передачи фокуса при нажатии пользователем клавиши табуляции.