Fr0*_*Fyr 16
查看以下链接的备注部分:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.lostfocus.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.leave.aspx
根据MSDN,改变控件焦点时存在差异.该Leave事件验证之前发生和LostFocus验证后发生.
我看到我仍然对几年前发布的答案有所了解和赞成.现在,我必须在上面的MSDN链接中包含一个(相当重要的)引用,以避免新程序员之间的混淆(注意在使用鼠标或通过调用Focus方法进行聚焦时顺序的差异):
当您使用键盘更改焦点(TAB,SHIFT + TAB,等等),通过调用选择或SelectNextControl方法,或者通过ContainerControl.ActiveControl属性设置为当前的形式,焦点事件发生的顺序如下:
Run Code Online (Sandbox Code Playgroud)Enter GotFocus Leave <--- before validation Validating -- |<--- validation Validated -- LostFocus <--- after validation当您通过使用鼠标或通过调用Focus方法改变焦点,焦点事件发生的顺序如下:
Run Code Online (Sandbox Code Playgroud)Enter GotFocus LostFocus <--- before validation Leave <--- before validation Validating -- |<--- validation Validated --
注意:强调我添加的引文中的文字和指标
它们发生在控件生命周期的不同点。根据使用的方法,验证发生在 之后Leave和之前LostFocus。
请参阅 MSDN:http : //msdn.microsoft.com/en-us/library/system.windows.forms.control.lostfocus.aspx