参考此 MSDN 页面(或有关此事的任何相关页面),它指出:
当您使用键盘更改焦点时,焦点事件按以下顺序发生:
- 进入
- 获得焦点
- 离开
- 证实
- 已验证
- 失去焦点
但是,当您使用鼠标引发事件时,顺序会发生变化!
当您使用鼠标或调用 Focus 方法更改焦点时,焦点事件按以下顺序发生:
- 进入
- 获得焦点
- 失去焦点
- 离开
- 证实
- 已验证
这不会使事件链完全不同吗?我的解释是,键盘链确保一切正常,然后引发LostFocus
事件。然而,由于某种原因,鼠标事件似乎在验证之前引发了它。这是为什么?