进度窗口显示 显示像vs那样的,先进度窗口之后,在去打开主窗口。
参考于:http://
在启动页面
Program.cs
using System;
using System.Windows.Forms;
namespace FlashFormDemos
{
/// <summary>
/// Class with program entry point.
/// </summary>
internal sealed class Program
{
private static ApplicationContext context;
//指定有关应用程序线程的上下文信息。
private static MainForm _mainForm = null;
//主窗体
private static FlashForm _flashForm = new FlashForm();
//要提前打开的窗体
/// <summary>
/// Program entry point.
/// </summary>
[STAThread]
private static void Main(string[] args)
{
// 改变顺序,目的使得开始加载速度加快
_flashForm.Show();
//加载提前打开的窗体
_mainForm = new MainForm();
//这是主窗体
context = new ApplicationContext();
//指定有关应用程序线程的上下文信息。
Application.Idle+= new EventHandler(Application_Idle);
//Application.Idle当应用程序完成处理并即将进入空闲状态时发生。
//EventHandler
表示将处理不包含事件数据的事件的方法。
Application.Run(context);
//Application.Run(new MainForm());
}
static void Application_Idle(object sender, EventArgs e)
{
if (context.MainForm == null)
{
Application.Idle -= new EventHandler(Application_Idle);
_mainForm.PreLoad();
context.MainForm = _mainForm;
context.MainForm.Show();
_flashForm.Close();
_flashForm = null;
}
}
}
}
在主窗体中加上一个方法如下:
public void PreLoad()
{
//模拟耗时操作,像数据库的操作
Thread.Sleep(5000);
}