2010-10-30 5 views
23

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

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

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

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

MyDropDownList.Focus() 

вОПРОС

NB: вопрос более о где, не как?

+0

Да, в обработчике событий Click. Что еще там? –

+0

@Hans Passant: Это для последующих времен (после пользовательской операции). Я могу написать его в обработчике событий кликов или в функции, называемой UpdateDropDownList(), которую я вызываю внутри внутри обработчика событий Click. Но для начальной загрузки, где я ее пишу? В InitializeComponent() или после его вызова? – Kanini

ответ

52

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

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

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

+0

+1, потому что мне нужно было поместить его в событие «Загрузить», чтобы он работал в моем приложении C#! – Hybrid

+0

Я очень ценю использование .Select(). Это было именно то, что мне нужно. – jeromeyers

Смежные вопросы