Как можно привязать фокус приложения .net к конкретному элементу управления? Например, если у меня есть форма с 5 текстовыми полями, и я хочу, чтобы они были заполнены в определенном порядке, как я могу помешать кому-то, находящемуся в блоке 1, вкладывать / щелкать блок 2, или нажимать «ОК», «Отмена» или что-то еще ? Есть ли простой способ, или я должен вручную отключить / включить друг друга в соответствующее время?
Проблема с очевидным решением (сбросить фокус, когда фокус потерян) состоит в том, что MSDN говорит, что вы можете заблокировать свою машину таким образом:
(Источник: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.leave.aspx)
Внимание:
Не пытайтесь установить фокус из обработчиков событий Enter, GotFocus, Leave, LostFocus, Validating или Validated. Это может привести к тому, что ваше приложение или операционная система перестанут отвечать на запросы. Дополнительные сведения см. В разделе WM_KILLFOCUS в разделе «Справочник по вводу с клавиатуры» и в разделе «Блокировка сообщений» в разделе «О сообщениях и очередях сообщений» в библиотеке MSDN по адресу http://msdn.microsoft.com/library.