Каково различие между Управлением. Войдите и Управление. События GotFocus?

Это может быть основным вопросом, но я должен признать, что действительно никогда не понимал что различие между Управлением. Войдите и Управление. События GotFocus.

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.enter.aspx http://msdn.microsoft.com/en-us/library/system.windows.forms.control.gotfocus.aspx

Действительно ли это - дифференцирование между получением клавиатуры или входа мыши или чего-то еще?

31
задан Adriaan Stander 23 April 2010 в 21:29
поделиться

1 ответ

События GotFocus / LostFocus генерируются сообщениями Windows, WM_SETFOCUS и WM_KILLFOCUS соответственно. Они немного хлопотны, особенно WM_KILLFOCUS, который склонен к тупиковой ситуации. Логика внутри Windows Forms, которая обрабатывает логику проверки (например, событие Validating), может переопределить изменения фокуса. Другими словами, фокус действительно изменился, но затем код проверки вернул его. Логическое состояние вашего пользовательского интерфейса состоит в том, что он никогда не перемещался, и вы не должны знать об этом.

События Enter / Leave позволяют избежать проблем, которые могут вызвать эти низкоуровневые события уведомления об изменении фокуса, они генерируются, когда Winforms устанавливает истинный фокус. Вы почти всегда хотите их использовать.

24
ответ дан 27 November 2019 в 22:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: