An old post that I've just hit - it appears there is an MS bug that rears its head, almost randomly it seems, though some machines seem to be worse affected than others.
Thanks to Mr Gallagher for pointing me at the MSDN social article with the work-around.
The trick is to help the Framework realise when the splash screen is actually available by not letting it hide the splash until it's been properly created.
So add a SplashLoadFinished
flag as a user setting or similar.
Then set this flag in the Splash Form.Load
event (the lines below must be the first and last lines respectively):
Private Sub Form_Load(sender As Object, e As System.EventArgs) Handles Me.Load
My.Settings.SplashLoadFinished = False
...
My.Settings.SplashLoadFinished = True
End Sub
Then put a wait loop in the ApplicationEvents
Startup
event :
Private Sub MyApplication_Startup(sender As Object, e As ApplicationServices.StartupEventArgs) Handles Me.Startup
...
If (Me.SplashScreen IsNot Nothing) Then
'Wait until the Splash has actually been created
While (Not My.Settings.SplashLoadFinished)
System.Threading.Thread.Sleep(50)
End While
End If
...