Deactivate 事件

当焦点从窗体或报表移到“表”、“查询”、“窗体”、“报表”、“宏”、“模块”窗口或“数据库”窗口时,Deactivate 事件发生。

Private Sub object_Deactivate()

Object    窗体或报表的名称。

说明

在两个开启的窗体之间切换时,切换的窗体将发生 Deactivate 事件,而切换到的窗体则发生 Activate 事件。如果这两个窗体中没有包含已启用的可见控件,则对于第一个窗体,LostFocus 事件先发生,而后发生 Deactivate 事件;对于第二个窗体,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 操作。

示例

下面的示例演示当焦点移动到另一个窗口时,如何隐藏工具栏。

Private Sub Form_Deactivate()

' Hide custom toolbar.

    DoCmd.ShowToolbar "CustomToolbar", acToolbarNo

    End

Sub