I have an application.
First I display a splash screen, a form, and this splash would call another form.
Problem: When the splash form is displayed, if I then open another application on the top of the splash, and then minimize this newly opened application window, the splash screen becomes white. How do I avoid this? I want my splash to be displayed clearly and not affected by any application.
You need to display the splash screen in a different thread – currently your new form loading code is blocking the splash screen’s UI thread.
Start a new thread, and on that thread create your splash screen and call
Application.Run(splash). That will start a new message pump on that thread. You’ll then need to make your main UI thread call back to the splash screen’s UI thread (e.g. with Control.Invoke/BeginInvoke) when it’s ready, so the splash screen can close itself.The important thing is to make sure that you don’t try to modify a UI control from the wrong thread – only use the one the control was created on.