Самый простой способ - создать форму и позволить ей убить себя через некоторое время, когда она будет показана.Но все становится сложнее, если вы хотите, чтобы эта форма отображала ход загрузки приложения во время инициализации приложения и исчезала, например, через 3 секунды после того, как приложение действительно было готово к использованию.
Идея заключалась бы в том, чтобы поместить заставку на совершенно другой поток из основного приложения.Это функция потока должна выглядеть следующим образом:
static void ThreadFunc()
{
_splash = new Splash();
_splash.Show();
while (!_shouldClose)
{
Application.DoEvents();
Thread.Sleep(100);
if (new Random().Next(1000) < 10)
{
_splash.Invoke(new MethodInvoker(_splash.RandomizeText));
}
}
for (int n = 0; n < 18; n++)
{
Application.DoEvents();
Thread.Sleep(60);
}
if (_splash != null)
{
_splash.Close();
_splash = null;
}
}
Затем вы можете использовать это, чтобы показать и скрыть:
static public void ShowSplash()
{
_shouldClose = false;
Thread t = new Thread(ThreadFunc);
t.Priority = ThreadPriority.Lowest;
t.Start();
}
internal static void RemoveSplash()
{
_shouldClose = true;
}