WinForm SplashScreen
By Fons Sonnemans (August 2002)
Download
SplashScreen.zip
Introduction
Most commercial WinForm applications have a SplashScreen. This article explains
how you can implement one using the Microsoft .NET Framework.

Example: Visual Studio.NET SplashScreen
SplashApplicationContext
The SplashApplicationContext is used to show a splash Form before the main Form
is shown. It's base class is ApplicationContext.
The constructor accepts 3 arguments
- mainForm: The main Form of the application to use for context
- splashForm: The splash Form of the application to use for context
- interval: The time (in milliseconds) the splash Form is visible.
Specify 0 to disable the timeout.
Usage
The Application.Run(context) method creates a standard application message loop
on the current thread, with an ApplicationContext.
The following code creates a SplashApplicationContext using a new Form1 as the MainForm
and a new SplashForm as the SplashForm. The interval is set to 2000 which will show
the SplashForm for 2 seconds. This is done in the static Main() method.
[STAThread]
static void Main()
{
SplashApplicationContext myContext
=
new
SplashApplicationContext(new
Form1(), new SplashForm(),
2000);
Application.Run(myContext);
}
Code: Form1.cs
You can use the time that the SplashForm is shown usefully. You can use it to connect
to databases or do some other intializations. The following code simulates some
activity. The status is displayed using a Label control.
private void SplashForm_Load(object
sender, System.EventArgs
e)
{
this.Show();
Application.DoEvents();
Cursor.Current = Cursors.WaitCursor;
this.labelStatus.Text
= "Step 1";
this.labelStatus.Refresh();
System.Threading.Thread.Sleep(1000);
this.labelStatus.Text
= "Step 2";
this.labelStatus.Refresh();
System.Threading.Thread.Sleep(1000);
this.labelStatus.Text
= "Step 3";
this.labelStatus.Refresh();
System.Threading.Thread.Sleep(1000);
this.Close();
}
Code: SplashForm.cs
You must set the interval to 0 to disable the timer.
[STAThread]
static void Main()
{
SplashApplicationContext myContext
=
new
SplashApplicationContext(new
Form1(), new SplashForm(),
0);
Application.Run(myContext);
}
Code: Form1.cs
Conclusion
The SplashApplicationContext class is easy solution to show a SplashScreen. It demonstrates
the power of the .NET Framework.
Any suggestions and feedback for improving this article is most welcome. Send your
suggestions and feedback to Fons.Sonnemans@reflectionit.nl