Что касается этой страницы MSDN (или на любой связанной странице по этому вопросу), в нем говорится, что:
Когда вы меняете фокус с помощью клавиатуры, события фокуса происходят в следующем порядке:
- Входить
- GotFocus
- Уехать
- Проверка
- Подтверждено
- LostFocus
Однако, когда вы используете мышь для вызова событий, порядок меняется!
Когда вы меняете фокус с помощью мыши или вызывая метод Focus, события фокуса происходят в следующем порядке:
- Входить
- GotFocus
- LostFocus
- Уехать
- Проверка
- Подтверждено
Разве это не сделало бы цепочку событий совершенно другой? Моя интерпретация заключается в том, что цепочка клавиатуры гарантирует, что все находится в рабочем состоянии, а затем вызывает событие LostFocus
. Тем не менее, кажется, что события мыши по какой-то причине вызывают его перед проверкой. Это почему?