I have a windows form application that needs to load a bunch of things before loading the Main window. I thought this would justify a ProgressBar, so I thought I display another form that contains the ProgressBar Control using the constructor of my main form.
It all works fine but if I try to put the text in a Label on the intro form its content won’t show until the main form is loaded. Is here a way to avoid this other than loading the intro window first?
You can show your SplashForm from either the main program or the MainForm constructor, that doesn’t really matter. What you are seeing is that as long as your Loading process isn’t completed, no messages are processed and hence no Screen updates are happening. The ProgressBar is an exception, it runs it’s own thread for precisely this reason.
The short solution is to do a
SplashForm.Update()after changing the Label. A little more involved would be to start a separate Thread with a MessagePump (Application.Run). Here is a SO question with some more leads.