标签:
下面是部分代码: AppStart 类,包含Main方法 public class AppStart { public AppStart() { } [STAThread] static void Main(string[] args) { // 显示Splash窗体 Splash.Show(); DoStartup(args); // 关闭Splash窗体 Splash.Close(); } static void DoStartup(string[] args) { // 做需要的事情 frmMain f = new frmMain(); Application.Run(f); } } Splash功能类: public class Splash { static frmSplash MySplashForm = null; static Thread MySplashThread = null; static void ShowThread() { MySplashForm = new frmSplash(); Application.Run(MySplashForm); } static public void Show() { if (MySplashThread != null) return; MySplashThread = new Thread(new ThreadStart(Splash.ShowThread)); MySplashThread.IsBackground = true; MySplashThread.ApartmentState = ApartmentState.STA; MySplashThread.Start(); } static public void Close() { if (MySplashThread == null) return; if (MySplashForm == null) return; try { MySplashForm.Invoke(new MethodInvoker(MySplashForm.Close)); } catch (Exception) { } MySplashThread = null; MySplashForm = null; } static public string Status { set { if (MySplashForm == null) { return; } MySplashForm.StatusInfo = value; } get { if (MySplashForm == null) { throw new InvalidOperationException("Splash Form not on screen"); } return MySplashForm.StatusInfo; } } } Splash 界面类: public class frmSplash : System.Windows.Forms.Form { private string _StatusInfo = ""; public frmSplash() { InitializeComponent(); } private void InitializeComponent() { // this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); // } public string StatusInfo { set { _StatusInfo = value; ChangeStatusText(); } get { return _StatusInfo; } } public void ChangeStatusText() { try { if (this.InvokeRequired) { this.Invoke(new MethodInvoker(this.ChangeStatusText)); return; } labStatus.Text = _StatusInfo; } catch (Exception e) { // 异常处理 } } } 主界面类: public class frmMain : System.Windows.Forms.Form { public frmMain() { InitializeComponent(); Splash.Status = "状态:载入初始化模块"; System.Threading.Thread.Sleep(1000); Splash.Status = "状态:载入管理模块"; System.Threading.Thread.Sleep(1000); Splash.Status = "状态:载入打印模块"; System.Threading.Thread.Sleep(1000); Splash.Status = "状态:载入插件模块"; System.Threading.Thread.Sleep(1000); Splash.Status = "状态:连接数据库"; System.Threading.Thread.Sleep(1000); Splash.Close(); } }
标签:
原文地址:http://www.cnblogs.com/chinatrust/p/4489270.html