WinForm下Splash(启动画面)制作
本代码可以依据主程序加载进度来显示Splash
1 static class Program
2 {
3 /// <summary>
4 /// 主程序的入口点在此设置,包括一些初始化操作,启动窗体等
5 /// </summary>
6 private static ApplicationContext context;
7 [STAThread]
8 static void Main()
9 {
10 Application.EnableVisualStyles(); //样式设置
11 Application.SetCompatibleTextRenderingDefault(false); //样式设置
12 Splash sp = new Splash(); //启动窗体
13 sp.Show(); //显示启动窗体
14 context = new ApplicationContext();
15 context.Tag = sp;
16 Application.Idle += new EventHandler(Application_Idle); //注册程序运行空闲去执行主程序窗体相应初始化代码
17 Application.Run(context);
18 }
19 //初始化等待处理函数
20 private static void Application_Idle(object sender, EventArgs e)
21 {
22 Application.Idle -= new EventHandler(Application_Idle);
23 if (context.MainForm == null)
24 {
25 Main mw = new Main();
26 context.MainForm =mw;
27 mw.init(); //主窗体要做的初始化事情在这里,该方法在主窗体里应该申明为public
28 Splash sp = (Splash)context.Tag;
29 sp.Close(); //关闭启动窗体
30 mw.Show(); //启动主程序窗体
31 }
32 }
33 }
2 {
3 /// <summary>
4 /// 主程序的入口点在此设置,包括一些初始化操作,启动窗体等
5 /// </summary>
6 private static ApplicationContext context;
7 [STAThread]
8 static void Main()
9 {
10 Application.EnableVisualStyles(); //样式设置
11 Application.SetCompatibleTextRenderingDefault(false); //样式设置
12 Splash sp = new Splash(); //启动窗体
13 sp.Show(); //显示启动窗体
14 context = new ApplicationContext();
15 context.Tag = sp;
16 Application.Idle += new EventHandler(Application_Idle); //注册程序运行空闲去执行主程序窗体相应初始化代码
17 Application.Run(context);
18 }
19 //初始化等待处理函数
20 private static void Application_Idle(object sender, EventArgs e)
21 {
22 Application.Idle -= new EventHandler(Application_Idle);
23 if (context.MainForm == null)
24 {
25 Main mw = new Main();
26 context.MainForm =mw;
27 mw.init(); //主窗体要做的初始化事情在这里,该方法在主窗体里应该申明为public
28 Splash sp = (Splash)context.Tag;
29 sp.Close(); //关闭启动窗体
30 mw.Show(); //启动主程序窗体
31 }
32 }
33 }
Splash窗体的相关属性设置:
BackgroundImage:载入你想作为启动画面的图片;
ControlBox:False;
FormBorderStyle:None;
ShowInTaskbar:False;
StartPositon:CenterScreen.