2

我在 VB.Net 中编写了一个启动屏幕,它显示 3 秒,然后显示一个登录屏幕。但是即使在登录显示时也会出现启动画面并且我已经告诉启动画面隐藏。这是我的代码:

    Public Class frmSplash

    Private Sub frmSplash_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Show()
        System.Threading.Thread.Sleep(3000)
        Me.Hide()
        frmLogin.Show()
    End Sub
End Class
4

3 回答 3

2

调用Thread.SleepUI 线程将冻结您的程序。

此外,Load 事件在表单显示之前触发,因此您Hide首先在表单显示之前调用。

您需要在表单中添加一个 Timer 组件,将其设置Interval3000,然后调用CloseTick事件。Start然后,在表单Shown事件中调用计时器的方法。

于 2009-12-20T17:34:32.830 回答
0

您的 sleep 语句正在冻结您的 UI,请尝试从另一个线程运行它。

于 2009-12-20T17:38:36.423 回答
0

多谢你们!这有效:Public Class frmSplash

Private Sub frmSplash_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    SplashTimer.Start()
End Sub

Private Sub SplashTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SplashTimer.Tick
    SplashTimer.Stop()
    frmLogin.Show()
    Me.Hide()
End Sub
End Class
于 2009-12-20T17:52:05.510 回答