我努力解决这个问题而没有任何运气:(
这是我的代码:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private frm As Form
Public Sub GenerateForm()
Set frm = New myForm
With frm
.Width = 4000
.Height = 3000
.Caption = "Message"
End With
frm.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
frm.Show vbModal
Sleep 3000
Unload Me
Set frm = Nothing
End Sub
Private Sub Command1_Click()
GenerateForm
End Sub
我想在3秒后自动关闭新创建的表单。
答案 0 :(得分:2)
Windows以模态模式打开等待用户输入,所以
之后的语句frm.Show vbModal
不会执行。
您有两种解决方案:
a)删除vbModal
b)在 myForm 上添加Timer并将Interval设置为1000(平均1秒),然后在Timer事件中添加此代码:
Private Sub Timer1_Timer()
Static sec As Integer
sec = sec + 1
If sec >= 3 Then
Timer1.Enabled = False
Unload Me
End If
End Sub
最后,您应该使用
Unload frm
因为卸载我是错误的。
答案 1 :(得分:0)
你可以使用这样的计时器,一旦达到3秒(3000),它将关闭表格并打开另一个。
Private Sub Timer1_Timer()
If Timer1.Interval = 3000 Then
frm_Menu.Show
Unload frmSplash
Timer1.Enabled = False
End If
End Sub