有一窗体A
A的Load事件里我有一些连接数据库的代码,并在A上面的label中显示一些提示信息,比如。正在连接数据库,
连接成功,连接失败原因等(失败会弹出C窗体设置数据库连接信息)
在连接完后。unload A...然后show B窗体现在有一个问题。就是运行后。A窗体根本不显示连接完数据库后直接就显示B窗体了。。包括连接失败
也不显示A。而直接显示C的设置窗体
Private Sub Form_Load()
    Info.Caption = "读取数据库设置"
    Call ReadData   '读取设置
    If DataType = "" Then  '如果未设置。。显示设置数据库的窗体
        DataSet.Show 1
    End If
    
    Info.Caption = "连接数据库"
    Temp = OpenConn   '连接数据库
    If Temp = True Then
        Info.Caption = "连接成功!"
        Main.Show    '显示主窗体。。
        Unload Me
    Else
        Info.Caption = "连接失败!"
        'MsgBox Conn.Errors(0)
        Conn.Errors.Clear
        DataSet.Show 1  '显示设置窗体
    End If
End Sub

解决方案 »

  1.   

    Form_Load事件是把里面的语句执行完后才SHOW出来的,所以这些你不能写到Form_Load事件中,而是先SHOW出来,最好是在窗体中加一个时钟控件,把这些代码在TIMER事件中触发.
      

  2.   

    设延迟效果,你这样直接连接上了B,B窗体把A窗体INFO.CAPTION的信息给覆盖了.
      

  3.   

    Private Sub Form_Load()
        Timer1.Interval = 500
    End SubPrivate Sub Timer1_Timer()
        Static i As Integer
        i = i + 1
        If i = 1 Then
            Text1.Text = "正在建立数据库连接..."
        ElseIf i = 2 Then
            Text1.Text = "正在校验密码..."
        ElseIf i = 3 Then
            Text1.Text = "等待进入系统..."
        Else
            Unload Me
            OtherForm.Show
        End If
    End Sub
      

  4.   


    Private Sub Timer1_Timer()
        Info.Caption = "读取数据库设置"
        Call ReadData   '读取设置
        If DataType = "" Then  '如果未设置。。显示设置数据库的窗体
            DataSet.Show 1
        End If
        
        Info.Caption = "连接数据库"
        Temp = OpenConn   '连接数据库
        If Temp = True Then
            Info.Caption = "连接成功!"
            Main.Show    '显示主窗体。。
            Unload Me
        Else
            Info.Caption = "连接失败!"
            'MsgBox Conn.Errors(0)
            Conn.Errors.Clear
            DataSet.Show 1  '显示设置窗体
        End If
    End Sub这样的话。是可以显示窗体了。。但有个问题!info.caption中的内容一个也没有显示.
      

  5.   

    Info.Caption = "读取数据库设置"
    doevents不过你这连贯的执行就不用放到timer中了,放到form_active 事件里就行了