0

vb.net 2005 で書かれた Windows フォーム プロジェクトがあります。

frmMain が表示される前にスプラッシュ画面が表示されないことを除いて、すべて正常に動作しています。

プロジェクトのプロパティで、スプラッシュ スクリーンを設定しました。スプラッシュ画面の表示イベントで、次を使用して遅延を設定しましたSystem.Threading.Thread.Sleep(3000)

しかし、メインの MDI フォームが読み込まれるだけで、カーソルが数秒間「待機」を示しているため、明らかにスプラッシュ画面が背後にあります。

VS 2005 では、スプラッシュ スクリーンを数秒間表示してから、メイン フォームをロードすると、美しく動作していました。

VS 2008 で他に何かする必要がありますか?

ありがとう

4

1 に答える 1

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() をオーバーライドし、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
于 2013-06-10T16:41:30.690 に答える