Access VBA教程:LostFocus事件

LostFocus事件在窗体或控件失去焦点时发生。

说明

若要在该事件发生时运行宏或事件过程,请将OnLostFocus属性设置为宏的名称或 [事件过程]。

当焦点为响应用户操作而移动时,该事件发生。例如,当按下 Tab 键、单击对象,或在 Visual Basic 中使用SetFocus方法,在宏中使用SelectObjectGoToRecordGoToControlGoToPage 操作时,该事件就会发生。

控件只有在其Visible 和 Enabled属性都设为“是”时才能获得焦点。窗体只有在它没有控件或所有可见控件都已禁用时才能获得焦点。只要窗体中包含可见的有效控件,窗体的 GotFocus事件就不会发生。

注意   若要自定义按下 Tab 键时焦点在窗体上控件间的移动顺序,请设置控件的Tab 次序或指定控件的访问键。

LostFocus 与Exit事件不同之处在于:每当控件失去焦点时就会发生 LostFocus事件。而 Exit事件只有在同一窗体上的一个控件失去焦点之后、另一控件获得焦点之前才会发生。LostFocus事件在 Exit事件之后发生。

如果将焦点移到窗体上的另一控件上,而且控件在该窗体上没有焦点,则窗体上原来拥有焦点的控件的 Exit 和 LostFocus事件都将发生在焦点移到的控件的 Enter 和 GotFocus事件发生之前。

如果使用鼠标将焦点从主窗体上的控件移动到该窗体的子窗体控件上,则将发生下列事件:

Exit(主窗体上的控件)  ==>

LostFocus(主窗体上的控件)  ==>

Enter(子窗体控件)  ==>

Exit(子窗体上具有焦点的控件)  ==>

LostFocus(子窗体上具有焦点的控件)  ==>

Enter(子窗体上焦点将移到的控件)  ==>

GotFocus(子窗体上焦点将移到的控件)

如果子窗体上焦点将移到的控件以前有焦点,则控件的 Enter事件和 GotFocus事件均不发生,但是子窗体控件的 Enter事件将发生。如果将焦点从子窗体上的控件移动到主窗体上的控件,子窗体上该控件的 Exit事件和 LostFocus事件不发生,只有子窗体控件的 Exit事件以及主窗体上控件的 Enter事件和 GotFocus事件发生。

注意   一般使用鼠标或按键(例如 Tab)将焦点移到另一控件上。这样的操作不但会触发本主题讨论的事件,还会发生鼠标或键盘事件。

当在两个打开的窗体之间切换时,在第一个窗体上发生Deactivate事件,在第二个窗体上发生Activate事件。如果该窗体不包含已启用的可见控件,则对于第一个窗体,LostFocus事件先发生,而后发生 Deactivate事件;对于第二个窗体,Activate事件先发生,而后 GotFocus事件发生。

VBA示例

下面的示例可以在焦点移到选项按钮时,在标签中显示消息。

若要试用该示例,请将下列事件过程添加到名为“联络人”的窗体中,并在该窗体中包含一个名为“OptionYes”的选项按钮和名为“LabelYes”的标签。


Private Sub OptionYes_GotFocus()
    Me!LabelYes.Caption = "Option button 'Yes' has the focus."
End Sub
Private Sub OptionYes_LostFocus()
    Me!LabelYes.Caption = ""        ' Clear caption.
End Sub

上页:Access VBA教程:Load事件 下页:Access VBA教程:MouseDown事件

Access VBA教程:LostFocus事件

Access VBA教程:MouseDown事件 Access VBA教程:作为位掩码的固有常量
Access VBA教程:MouseMove事件 Access VBA教程:MouseUp事件
Access VBA教程:MouseWheel事件 Access VBA教程:NoData事件
Access VBA教程:NotInList事件 Access VBA教程:OnConnect事件
Access VBA教程:OnDisconnect事件 Access VBA教程:Open事件
Access VBA教程:Page事件 Access VBA教程:PivotTableChange事件
Access VBA教程:Print事件 Access VBA教程:Progress事件 (Snapshot Viewer)
Access VBA教程:Query事件 Access VBA教程:ReadyStateChange事件 (Snapshot Viewer)
Access VBA教程:RecordExit事件 Access VBA教程:Resize事件
Access VBA教程:Retreat事件 Access VBA教程:RollbackTransaction事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号