この MSDN ページ(またはこの件に関する関連ページ) を参照すると、次のように述べられています。
キーボードを使用してフォーカスを変更すると、次の順序でフォーカス イベントが発生します。
- 入る
- フォーカスを得た
- 離れる
- 検証中
- 検証済み
- ロストフォーカス
ただし、マウスを使用してイベントを発生させると、順序が変わります!
マウスを使用するか、Focus メソッドを呼び出してフォーカスを変更すると、次の順序でフォーカス イベントが発生します。
- 入る
- フォーカスを得た
- ロストフォーカス
- 離れる
- 検証中
- 検証済み
これにより、一連のイベントがまったく異なるものになるのではないでしょうか。ここでの私の解釈は、キーボード チェーンがすべてが正常に動作していることを確認してから、LostFocus
イベントを発生させるというものです。それでも、マウスイベントは、何らかの理由で検証する前にそれを発生させるようです。何故ですか?