Forms 如何在函数开始时显示在函数结束时关闭的窗体?

Forms 如何在函数开始时显示在函数结束时关闭的窗体?,forms,vb6,modal-dialog,Forms,Vb6,Modal Dialog,我有一个函数可能需要一些时间来执行 我怎样才能在函数开始时显示一个小的模态形式,而函数结束时它将关闭?假设frmModal是您希望显示的形式。在函数开始时,输入 frmModal.Show frmModal.refresh 在你的功能结束时,输入 Unload frmModal 假设frmModal是您希望显示的表单。在函数开始时,输入 frmModal.Show frmModal.refresh 在你的功能结束时,输入 Unload frmModal 加载表单模式(form1.show

我有一个函数可能需要一些时间来执行


我怎样才能在函数开始时显示一个小的模态形式,而函数结束时它将关闭?

假设frmModal是您希望显示的形式。在函数开始时,输入

frmModal.Show
frmModal.refresh
在你的功能结束时,输入

Unload frmModal

假设frmModal是您希望显示的表单。在函数开始时,输入

frmModal.Show
frmModal.refresh
在你的功能结束时,输入

Unload frmModal

加载表单模式(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
'3表格:
'Form1:name=Form1
'包含两个名为Command1和Command2的命令按钮
'表格2和表格3不包含任何特殊内容
选项显式
专用子命令1_Click()
模糊的性别和长的一样
表格3.显示vbModal
lngEnd=计时器+5
定时器<性别时执行
标题=CStr(计时器)
多芬特
环
卸载表格3
端接头
专用子命令2_Click()
模糊的性别和长的一样
已启用=错误
表格2.显示无模式,我
lngEnd=计时器+5
定时器<性别时执行
标题=CStr(计时器)
多芬特
环
启用=真
卸载表格2
端接头

加载表单模式(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
'3表格:
'Form1:name=Form1
'包含两个名为Command1和Command2的命令按钮
'表格2和表格3不包含任何特殊内容
选项显式
专用子命令1_Click()
模糊的性别和长的一样
表格3.显示vbModal
lngEnd=计时器+5
定时器<性别时执行
标题=CStr(计时器)
多芬特
环
卸载表格3
端接头
专用子命令2_Click()
模糊的性别和长的一样
已启用=错误
表格2.显示无模式,我
lngEnd=计时器+5
定时器<性别时执行
标题=CStr(计时器)
多芬特
环
启用=真
卸载表格2
端接头

我最喜欢的技巧是将运行的代码放入运行时显示的表单中。然后当它完成时,给我打电话

'Code in Form1
Call frmWait.Show(vbModal, Me)

'Code in frmWait
Private Sub Form_Activate()

    'Do some work ...

    Unload Me

End Sub

我最喜欢的技巧是将运行的代码放入运行时显示的表单中。然后当它完成时,给我打电话

'Code in Form1
Call frmWait.Show(vbModal, Me)

'Code in frmWait
Private Sub Form_Activate()

    'Do some work ...

    Unload Me

End Sub