如何在函数开始时显示窗体,在函数结束时显示窗体



我有一个函数,它可能需要一些时间才能执行。

如何在函数开始时显示一个小的模态形式,当函数结束时关闭?

假设frmModal是您想要显示的表单。在你的功能开始时放入

frmModal.Show
frmModal.refresh

在你的功能结束时放入

Unload frmModal

我最喜欢的技巧是将运行的代码放入运行时显示的表单中。然后当它完成时,调用卸载我

'Code in Form1
Call frmWait.Show(vbModal, Me)
'Code in frmWait
Private Sub Form_Activate()
'Do some work ...
Unload Me
End Sub

当您加载表单modal(form1.show vbmodal)时,在关闭模型表单之前,不会执行后续代码

模拟所需内容的一种简单方法(无需api)是显示表单无模式,并临时禁用其他表单

在以下测试项目中查看command1和command2之间的差异:

'3 forms :
'    Form1 : name=Form1
'        contains 2 command buttons with the name Command1 and Command2
'    Form2 and Form3 contain nothing special
Option Explicit
Private Sub Command1_Click()
Dim lngEnd As Long
Form3.Show vbModal
lngEnd = Timer + 5
Do While Timer < lngEnd
Caption = CStr(Timer)
DoEvents
Loop
Unload Form3
End Sub
Private Sub Command2_Click()
Dim lngEnd As Long
Enabled = False
Form2.Show vbModeless, Me
lngEnd = Timer + 5
Do While Timer < lngEnd
Caption = CStr(Timer)
DoEvents
Loop
Enabled = True
Unload Form2
End Sub

最新更新