Form.GotFocus 事件 (Access)
指定的对象接收焦点时发生 GotFocus 事件。
语法
表达式。GotFocus
expression:表示 Form 对象的变量。
备注
若要在这些事件发生时运行宏或事件过程,请将 OnGotFocus 属性设置为宏的名称或设置为 [事件过程]。
当焦点移动以响应用户操作(例如按 Tab 键或单击对象)时,或者在 Visual Basic 中使用 SetFocus 方法或在宏中使用 SelectObject、GoToRecord、GoToControl 或 GoToPage 操作时,会发生这些事件。
控件可以接收焦点,只有当其 可见性 ,并 启用 属性设置为是。 只有在它没有控件或所有可见控件都失效时,窗体可以接收焦点。 如果窗体包含了任何可见的、 已启用的控件,该窗体的 GotFocus 事件不会发生。
您可以指定在窗体或控件获得焦点的 GotFocus 事件发生时运行宏或事件过程时,会发生什么情况。 例如,通过将 GotFocus 事件过程附加到窗体上每个控件,可以在文本框中显示简要的帮助或消息来指引用户通过您的应用程序。 您还可以通过启用、 禁用或显示依赖于具有焦点的控件的控件提供可视化提示。
注意
若要自定义按 Tab 键时焦点在窗体上从控件移动到控件的顺序,请设置 Tab 键顺序或为控件指定访问键。
GotFocus 事件 输入 事件的不同之处在于 GotFocus 事件发生,每次控件接收到焦点。 例如,假设用户单击窗体上的复选框,然后单击报表,并最后单击复选框将它显示为前台的窗体上。 GotFocus 事件发生两个复选框将接收到焦点的时间。 与此相反的是,发生 Enter 事件只在用户单击复选框的首次。 Enter 事件之后发生 GotFocus 事件。
如果将焦点移到窗体上的控件,该控件没有焦点的窗体中, 退出 和 LostFocus 事件没有焦点的窗体上的控件之前发生 Enter 和 GotFocus 事件的控件您移至。
如果使用鼠标将焦点从主窗体上的控件移动到该窗体的子窗体上的控件,将发生下列事件:
- 退出 (对于主窗体上的控件)
- LostFocus (对于主窗体上的控件)
- 输入 (用于子窗体控件)
- 退出 (适用于具有焦点的窗体控件)
- LostFocus (适用于具有焦点的窗体控件)
- 输入 (对于在焦点移到子窗体控件)
- GotFocus (对于在焦点移到子窗体控件)
如果移动到子窗体上的控件以前具有焦点,则不会发生其 Enter 事件和 GotFocus 事件,但子窗体控件的 Enter 事件不会发生。 如果将焦点从子窗体上的控件移动到主窗体上的控件,则子窗体上控件的 Exit 和 LostFocus 事件不会发生,只有子窗体控件的 Exit 事件以及主窗体上控件的 Enter 和 GotFocus 事件。
注意
通常使用鼠标或 Tab 等键将焦点移动到另一个控件。 这不但会使本主题讨论的事件发生,还将发生鼠标或键盘事件。
在两个打开的窗体之间切换时, 停用 事件发生第一个窗体,以及 激活 事件发生的第二个窗体。 如果窗体包含不可见,启用 LostFocus 事件发生之前 停用 事件中,第一个窗体控件,并 激活 事件后发生的第二个窗体, GotFocus 事件。
示例
下面的示例在焦点移到选项按钮时,在标签中显示一条消息。 若要尝试此示例,请将以下事件过程添加到名为 “联系人” 的窗体,该窗体包含一个名为 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
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。