Forms Visual Basic 6::卸载动态创建的表单
我正在努力解决这个问题,但没有任何运气:( 这是我的密码:Forms Visual Basic 6::卸载动态创建的表单,forms,timer,vb6,sleep,Forms,Timer,Vb6,Sleep,我正在努力解决这个问题,但没有任何运气:( 这是我的密码: 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
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秒后自动关闭新创建的表单。您可以像这样使用计时器,一旦达到3秒(3000),它将关闭表单并打开另一个表单
Private Sub Timer1_Timer()
If Timer1.Interval = 3000 Then
frm_Menu.Show
Unload frmSplash
Timer1.Enabled = False
End If
End Sub
在模式模式下打开的窗口等待用户输入,因此
frm.Show vbModal
不会执行
您有两种解决方案:
a) 删除vbModal
b) 在myForm上添加计时器,并将间隔设置为1000(平均1秒),然后在计时器事件中添加此代码:
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
因为卸载我是错误的。你真的是说
卸载我
,还是说卸载frm
?你的设计是错误的。您不应该向用户显示消息,然后在几秒钟后将其删除,因为这只会让用户感到困惑,他们会认为出现了问题。改变设计,你的问题就会消失。