Как установить фокус на элемент управления в приложении Windows Forms? - PullRequest
27 голосов
/ 30 октября 2010

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

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

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

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

MyDropDownList.Focus()

ВОПРОС

Примечание: вопрос больше о , где , а не как ?

Ответы [ 2 ]

59 голосов
/ 30 октября 2010

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

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

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

0 голосов
/ 17 мая 2019

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

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

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

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