private void Animator() { MainCount++; if (MainCount > 1) { Console.WriteLine("查看当前的时间,跟踪为什么程序启动比较慢1: " + DateTime.Now.ToString()); Console.WriteLine("正在尝试创建窗口,拦截"); return; } //MainInfoOld frm = new MainInfoOld(); MainInfo01 frm = new MainInfo01(); // C# 判断窗体是否已经打开, 避免重复打开同一个窗体 if (frm == null || frm.IsDisposed) { Console.WriteLine("查看当前的时间,跟踪为什么程序启动比较慢2: " + DateTime.Now.ToString()); //frm = new MainInfoOld(); frm = new MainInfo01(); frm.Show();//如果之前未打开,则打开。 Console.WriteLine("查看当前的时间,跟踪为什么程序启动比较慢3: " + DateTime.Now.ToString()); frm.Visible = true; } else { frm.Show(); //如果之前未打开,则打开。 frm.Activate(); //之前已打开,则给予焦点,置顶。 frm.Visible = true; } pTimer_Elapsed(null, null); //当主窗体加载完成则移除本Form return; }
//初始化等待处理函数 private static void Application_Idle(object sender, EventArgs e) { Application.Idle -= new EventHandler(Application_Idle); if (context.MainForm == null) { //MainInfoOld mw = new MainInfoOld(); MainInfo01 mw = new MainInfo01(); context.MainForm = mw; mw.InitializeLifetimeService(); //主窗体要做的初始化事情在这里,该方法在主窗体里应该申明为public frmSplash sp = (frmSplash)context.Tag; sp.Close(); //关闭启动窗体 mw.Show(); //启动主程序窗体 } }