2

我有一个表单可以打开一个模态弹出帮助表单来收集一些数据。当此模式弹出窗体关闭时,焦点返回到主窗体。当焦点回到我的主要形式时,我想触发一些活动。

根据Microsoft 文档,当从模型弹出窗口返回时,表单的事件模型不会触发Form_Activate或事件。Form_GotFocus

这些表单和所有控件完全不受约束。

当焦点返回到我的表单时,是否有在代码中知道的技巧?

如果两个表单都处于正常模式,Form_Activate则在辅助表单关闭时会以主表单触发,但这不符合我的需要。我还没有找到一个类似的事件来捕获这个。我希望有人有解决方法。

4

1 回答 1

2

为清楚起见,我遇到的问题是我将辅助表单中的设计时属性设置为充当对话框 - (弹出和模态为真)。当我打开响应主表单上的按钮单击事件的表单时,我没有包含该acDialog选项。

如果您省略WindowMode=acDialog设置,代码将异步运行,完整地完成 click 事件处理程序中的代码,而不是暂停和等待。

acDialog选项显然强制DoCmd.OpenForm命令同步运行,停止代码执行,然后在模式窗体关闭后返回。

    Private Sub btnHelper_Click()

        DoCmd.OpenForm "frmHelper", WindowMode:=acDialog

        'Do stuff after frmHelper closes

    End Sub
于 2016-08-29T18:51:21.870 回答