Activate 事件在窗体或报表获得焦点并成为活动窗口时发生。
Private Sub object_Activate()
object 窗体或报表的名称。
注释 如果窗体是在对话框、弹出式窗体或其他窗体后面获得焦点,则 Activate 事件不会发生。
若要在这些事件发生时执行宏或事件过程,请将 OnActivate 或 OnDeactivate 属性设置为宏的名称或 [事件过程]。
激活窗体或报表的方法有好几种,可以将其打开、对其或它上面的控件进行单击,或通过在 Visual Basic 中使用 SetFocus 方法(只对窗体而言)。
Activate 事件发生在 GotFocus 事件之前,Deactivate 事件则发生 LostFocus 事件之后。
在两个开启的窗体之间切换时,切换的窗体将发生 Deactivate 事件,而切换到的窗体发生 Activate 事件。如果这两个窗体中没有包含已启用的可见控件,则第一个窗体在发生 Deactivate 事件之前将发生 LostFocus 事件,而第二个窗体在发生 Activate 事件之后发生 GotFocus 事件。
在首次打开窗体时,下列事件按如下顺序发生:
Open → Load → Resize → Activate → Current
当关闭窗体时,下列事件按如下顺序发生:
Unload → Deactivate → Close
可以在 Activate 或 Deactivate 宏中使用 ShowToolbar 操作来显示或隐藏自定义工具栏。当您一次加载多个窗体时,使用 Activate 或 Deactivate 事件可显示或隐藏自定义工具栏。如果一次只加载一个窗体,则可以使用 Open 和 Close 事件。
因为卸载窗体时不会发生 Deactivate 事件,所以,如果使用 Deactivate 宏来隐藏窗体上的自定义工具栏,那么,一定还要隐藏该工具栏以响应窗体的 Unload 事件。由于在包含已启用的控件的窗体上不会触发 GotFocus 或 LostFocus 事件,因此不要使用这些事件来显示或隐藏窗体上的自定义工具栏。
在 Activate 或 Deactivate 宏中,不能使用 CancelEvent 操作。
以下示例说明当窗体获得焦点时如何显示名为 CustomToolbar 的自定义工具栏,以及当焦点移至其他窗口时如何隐藏它。
Private Sub Form_Activate()
' 显示自定工具栏。
DoCmd.ShowToolbar "CustomToolbar", acToolbarYes
End Sub
Private Sub Form_Deactivate()
' 隐藏自定义工具栏。 DoCmd.ShowToolbar "CustomToolbar", acToolbarNo
End Sub Private