初始屏幕问题
问题描述:
我在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
答
在UI线程中调用Thread.Sleep
会冻结你的程序。
另外,Load事件在表单显示之前触发,因此您在首先显示表单之前调用Hide
。
你需要一个Timer组件添加到窗体,设置其Interval
到3000
,并在其Tick
事件致电Close
。然后,以形式Shown
事件调用计时器的Start
方法。
答
谢谢你们!这工作: 公共类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
为什么你想这样做?对于最终用户来说,只要程序启动,没有比毫无意义的三秒钟等待更让人讨厌的事了。如果您在后台加载程序的其余部分,则只应显示启动画面。 – SLaks 2009-12-20 17:41:35
在某些程序中,启动画面是信息性的,它可能会提醒用户程序版本,程序的创建者或其他有用的信息。但我同意,如果你为了展示它而展示它,那么它有点毫无意义。 – Cyclone 2009-12-20 17:44:53
这是关于对话框的用途。 – SLaks 2009-12-20 17:45:26