LostFocus事件与TextBox离开事件的区别

Ste*_*der 13 c#-4.0

LostFocusLeave事件有TextBox什么区别?

Fr0*_*Fyr 16

查看以下链接的备注部分:

根据MSDN,改变控件焦点时存在差异.该Leave事件验证之前发生和LostFocus验证后发生.


更新日期:2019年2月14日

我看到我仍然对几年前发布的答案有所了解和赞成.现在,我必须在上面的MSDN链接中包含一个(相当重要的)引用,以避免新程序员之间的混淆(注意在使用鼠标或通过调用Focus方法进行聚焦时顺序的差异):

当您使用键盘更改焦点(TAB,SHIFT + TAB,等等),通过调用选择或SelectNextControl方法,或者通过ContainerControl.ActiveControl属性设置为当前的形式,焦点事件发生的顺序如下:

Enter

GotFocus

Leave              <--- before validation

Validating      --
                  |<--- validation
Validated       --

LostFocus          <--- after validation
Run Code Online (Sandbox Code Playgroud)

当您通过使用鼠标或通过调用Focus方法改变焦点,焦点事件发生的顺序如下:

Enter

GotFocus

LostFocus          <--- before validation

Leave              <--- before validation

Validating      --
                  |<--- validation
Validated       --
Run Code Online (Sandbox Code Playgroud)

注意:强调我添加的引文中的文字和指标


Den*_*aub 5

它们发生在控件生命周期的不同点。根据使用的方法,验证发生在 之后Leave和之前LostFocus

请参阅 MSDN:http : //msdn.microsoft.com/en-us/library/system.windows.forms.control.lostfocus.aspx