主窗体为Form1,启动画面窗体为FormSplash。
在Form1的Load事件的开始,将隐藏Form1,显示FormSplash,Load事件结束时显示Form1,关闭FormSplash:
private void Form1_Load(object sender, EventArgs e)
{
this.Hide();
FormSplash splash = new FormSplash();
splash.Show();
//......Form1启动代码
splash.Close();
this.Show();
}
运行时,在FormSplash显示之前,Form1闪现了一小段时间,很影响体验。
查找了一段时间,发现是因为Form1的WindowState设为Maximized了,
初始化将其设为Minimized,显示启动窗体,在Load事件结束时将其设为Maximized并关闭启动窗体,这样不需要Hide和Show也能实现启动窗体的效果了。