Как установить фокус на элемент управления после проверки в .NET

У меня есть приложение WinForm с несколькими элементами управления вводом в форме. В обработчике события проверки (либо Validating , либо Validated ) мне нужно определить, какой элемент управления активировать следующим, на основе проверенного значения.

В документации Microsoft ] Проверяя событие , в нем говорится:

Внимание

Не пытайтесь установить фокус из Enter, Обработчики событий GotFocus, Leave, LostFocus, Validating или Validated. Это может привести к тому, что ваше приложение или операционная система перестанут отвечать. Дополнительные сведения см. В разделе WM_KILLFOCUS в разделе «Справочник по вводу с клавиатуры» и в разделе «Тупиковые ситуации для сообщений» раздела «О сообщениях и очередях сообщений» в библиотеке MSDN по адресу http: // msdn.microsoft.com/library. .

Существует свойство ActiveControl для класса Form, которое позволяет установить элемент управления, который должен стать активным, и никаких ограничений не упоминается. Я не нашел другого решения после нескольких часов поиска в Интернете.

Устанавливает свойство ActiveControl (вместо Focus ) из моего обработчика событий Validated как безопасный способ позитивной активации контроль, который я хочу? Если не, есть ли решения?

Поскольку .NET Compact Framework не имеет свойства ActiveControl , может ли кто-нибудь предложить решение?

6
задан Cody Gray 16 December 2010 в 18:54
поделиться