Вместо использования события Validating, почему бы не использовать вместо него Leaving? Кажется, не имеет таких же причуд.

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

В документации Microsoft оПользователи Событие гласит:

предосторожность

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

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

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

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

Ответы на вопрос(4)

Ваш ответ на вопрос