Мне очень нравится ответ Aku, но код для C # 3.0 и выше, поскольку он использует функцию лямбда. Для людей, нуждающихся в использовании кода в C # 2.0, вот код, использующий анонимный делегат вместо функции лямбда. Вам нужна самая верхняя winform с именем formSplash
с FormBorderStyle = None
. Параметр TopMost = True
формы важен, потому что заставка может выглядеть так, как будто она появляется, а затем быстро исчезает, если она не самая верхняя. Я также выбираю StartPosition=CenterScreen
, поэтому он выглядит так, как профессиональное приложение будет делать с заставкой. Если вам нужен еще более холодный эффект, вы можете использовать свойство TrasparencyKey
, чтобы создать заставку неправильной формы.
private void formMain_Load(object sender, EventArgs e)
{
Hide();
bool done = false;
ThreadPool.QueueUserWorkItem(delegate
{
using (formSplash splashForm = new formSplash())
{
splashForm.Show();
while (!done)
Application.DoEvents();
splashForm.Close();
}
}, null);
Thread.Sleep(2000);
done = true;
Show();
}