我有一个窗体打开一个模态弹出帮助窗体来收集一些数据。当此模态弹出窗体关闭时,焦点将返回到主窗体。当焦点回到我的主要表单时,我想触发一些活动。
根据Microsoft文档从模型弹出窗口返回时,表单的事件模型不会触发Form_Activate
或Form_GotFocus
事件。
这些表单和所有控件都是完全未绑定的。
当焦点返回到我的表单时,是否有一个知道代码的技巧?
如果两个表单都处于正常模式,则当辅助表单关闭时,Form_Activate
会在主表单中触发,但这不符合我的需要。我无法找到类似的事件来捕捉这个。我希望有人有解决方法。
答案 0 :(得分:2)
为了清楚起见,我遇到的问题是我将辅助表单中的设计时属性设置为对话框 - (弹出和模态为true)。当我打开表单响应主窗体上的按钮单击事件时,我没有包含acDialog
选项。
如果省略WindowMode=acDialog
设置,代码将完全异步地完成单击事件处理程序中的代码,而不是暂停和等待。
acDialog
选项显然强制DoCmd.OpenForm
命令同步运行,暂停代码执行,然后在模式窗体关闭后返回。
Private Sub btnHelper_Click()
DoCmd.OpenForm "frmHelper", WindowMode:=acDialog
'Do stuff after frmHelper closes
End Sub