Visual Basic 6 ::卸载动态创建的表单

时间:2017-04-22 23:13:37

标签: 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
        .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秒后自动关闭新创建的表单。

2 个答案:

答案 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