先来一个加载窗体代码
代码语言:javascript复制 1 public partial class FrmLoading : Form
2 {
3 public BackgroundWorker updateDBWorker=new BackgroundWorker();
4
5 public Action BackgroundWorkAction
6 {
7 get;
8 set;
9 }
10
11 public KeyValuePair<int, string> CurrentMsg
12 {
13 set
14 {
15 this.updateDBWorker.ReportProgress(value.Key, value.Value);
16 }
17 }
18
19 public FrmLoading()
20 {
21 InitializeComponent();
22 this.updateDBWorker.WorkerReportsProgress = true;
23 this.updateDBWorker.WorkerSupportsCancellation = true;
24 this.updateDBWorker.DoWork = new DoWorkEventHandler(this.backgroundWorker1_DoWork);
25 this.updateDBWorker.ProgressChanged = new ProgressChangedEventHandler(this.backgroundWorker1_ProgressChanged);
26 this.updateDBWorker.RunWorkerCompleted = new RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
27 lblVer.Text = Properties.Resources.SystemVer;
28 }
29
30
31 public void ShowLog(string strLog, int intValue)
32 {
33 if (this.lblLog.InvokeRequired)
34 {
35 this.lblLog.BeginInvoke(new MethodInvoker(delegate() { ShowLog(strLog, intValue); }));
36 }
37 else
38 {
39 lblLog.Text = strLog;
40 this.progressBar1.Value = intValue;
41 }
42 }
43
44 private void FrmLoading_Load(object sender, EventArgs e)
45 {
46 this.updateDBWorker.RunWorkerAsync();
47 }
48
49 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
50 {
51 if (this.BackgroundWorkAction != null)
52 {
53 this.BackgroundWorkAction();
54 }
55 Thread.Sleep(100);
56 if (base.InvokeRequired)
57 {
58 base.BeginInvoke(new MethodInvoker(delegate
59 {
60 base.Close();
61 }));
62 }
63 else
64 {
65 base.Close();
66 }
67 }
68
69 private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
70 {
71 ShowLog((e.UserState == null) ? "" : e.UserState.ToString(), e.ProgressPercentage);
72 }
73
74 private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
75 {
76 }
77 }
界面就一个进度条,一个label,没其他东西
看调用的地方,Program文件里面
代码语言:javascript复制 1 FrmLoading frmLoading = new FrmLoading();
2 frmLoading.BackgroundWorkAction = delegate
3 {
4 try
5 {
6 //设置连接字符串
7 frmLoading.CurrentMsg = new KeyValuePair<int, string>(1, "正在初始化数据配置...");
8
9 frmLoading.CurrentMsg = new KeyValuePair<int, string>(5, "正在初始化日志配置...");
10 System.Threading.Thread.Sleep(200);
11
12 frmLoading.CurrentMsg = new KeyValuePair<int, string>(10, "正在升级本地数据...");
13
14 frmLoading.CurrentMsg = new KeyValuePair<int, string>(50, "正在初始化本地参数...");
15
16 frmLoading.CurrentMsg = new KeyValuePair<int, string>(85, "正在初始化热键信息...");
17
18 frmLoading.CurrentMsg = new KeyValuePair<int, string>(90, "正在初始化硬件设备...");
19
20 frmLoading.CurrentMsg = new KeyValuePair<int, string>(100, "初始化完成...");
21
22 }
23 catch (Exception ex)
24 {
25 Application.Exit();
26 Process.GetCurrentProcess().Kill();
27 }
28 };
29 frmLoading.ShowDialog();
30
31 Application.Run(new form1());
好了 就这样了,没什么技术含量,就不贴图了,拿去用吧