Как настроить фокус на элемент управления в приложении Windows Forms?
В приложении Windows Forms, , когда, я пишу код для установки фокуса на элемент управления как во время запуска приложения, так и после вызова функции?
Например, если у меня есть DropDownList, TextBox и четыре кнопки, и я хочу, чтобы Focus был установлен в DropDownList, где я пишу свой код?
Чтобы установить фокус на конкретный элемент управления при запуске приложения, я могу установить индекс табуляции в DropDown (с минимальным значением, в предположении, что свойство TabStop имеет значение True).
Теперь, если пользователь завершает операцию (скажем, любой из событий кнопки мыши), а затем я обновляю DropDown и после этого, если я хочу установить фокус... Я могу сделать это как
MyDropDownList.Focus()
Вопрос
NB: вопрос о где, а не как <? >
Ответы
Ответ 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();
}
Обратите внимание, что порядок вкладок не имеет никакого отношения к тому, где начинается фокус. Вместо этого порядок табуляции используется для определения способа передачи фокуса при нажатии пользователем клавиши табуляции.