Windows窗体启动画面不显示

时间:2013-06-10 15:58:55

标签: .net vb.net winforms splash-screen

我有一个用vb.net 2005编写的Windows窗体项目。

一切正常,除了在显示frmMain之前不会显示启动画面。

在Project属性中,我设置了Splash画面。 在启动画面已显示事件中,我使用System.Threading.Thread.Sleep(3000)设置了延迟

但主要的MDI表单只是加载,然后Splash屏幕显然在它后面,因为光标显示“等待”几秒钟。

在VS 2005中,它过去工作得很漂亮,显示启动画面几秒钟,然后加载主窗体。

在VS 2008中我还需要做些什么吗?

感谢

1 个答案:

答案 0 :(得分:1)

点击项目 - >属性 - >应用程序选项卡 - > (向下滚动到右下角) - > “查看应用程序事件”按钮,您应该看到类似的内容:

Namespace My

    ' The following events are available for MyApplication:
    ' 
    ' Startup: Raised when the application starts, before the startup form is created.
    ' Shutdown: Raised after all application forms are closed.  This event is not raised if the application terminates abnormally.
    ' UnhandledException: Raised if the application encounters an unhandled exception.
    ' StartupNextInstance: Raised when launching a single-instance application and the application is already active. 
    ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
    Partial Friend Class MyApplication

    End Class

End Namespace

现在覆盖OnInitialize()并按照概述here设置MinimumSplashScreenDisplayTime():

Namespace My

    ' The following events are available for MyApplication:
    ' 
    ' Startup: Raised when the application starts, before the startup form is created.
    ' Shutdown: Raised after all application forms are closed.  This event is not raised if the application terminates abnormally.
    ' UnhandledException: Raised if the application encounters an unhandled exception.
    ' StartupNextInstance: Raised when launching a single-instance application and the application is already active. 
    ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
    Partial Friend Class MyApplication

        Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean
            ' Set the display time to 3000 milliseconds (3 seconds):
            Me.MinimumSplashScreenDisplayTime = 3000
            Return MyBase.OnInitialize(commandLineArgs)
        End Function

    End Class

End Namespace