Access VBA教程:GotFocus事件

GotFocus事件在窗体或控件获得焦点时发生。

说明

注意   GotFocus事件只适用于窗体或窗体上的控件,不适用于报表上的控件。

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

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

控件只有在它的Visible 和“是否有效”属性都设置为“是”时才能获得焦点。窗体只有在它没有控件或所有可见的控件都失效时,才能获得焦点。如果窗体包含了任何可见的、有效的控件,则窗体的 GotFocus事件不会发生。

当 GotFocus事件发生时,可以通过运行宏或事件过程来指定窗体或控件获得焦点时要进行的操作。例如,通过将 GotFocus事件过程附加到窗体上的每一控件,可以在文本框中显示简要的帮助或消息来指引用户使用应用程序。也可以根据控件是否获得焦点,在视觉上提供有关控件有效、失效的提示。

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

GotFocus事件与Enter事件不同之处在于:GotFocus事件在控件每次获得焦点时都发生。例如,如果用户单击窗体上的复选框,然后单击报表,最后再单击窗体上的复选框将它显示为前台对象,复选框两次获得焦点时 GotFocus事件都会发生。而 Enter事件只在用户第一次单击复选框时才发生。GotFocus事件在 Enter事件之后发生。

如果将焦点移动到窗体上的另一控件上,而且该控件在窗体上没有焦点,则窗体原来拥有焦点的控件的 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示例

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

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


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教程:Format事件 下页:Access VBA教程:Initialize事件

Access VBA教程:GotFocus事件

Access VBA教程:Initialize事件 Access VBA教程:ItemAdded事件
Access VBA教程:ItemRemoved事件 Access VBA教程:KeyDown事件
Access VBA教程:KeyPress事件 Access VBA教程:KeyUp事件
Access VBA教程:Load事件 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事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号