前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c# Winform 加载窗体

c# Winform 加载窗体

作者头像
冰封一夏
发布2019-09-10 17:40:44
1.4K0
发布2019-09-10 17:40:44
举报

先来一个加载窗体代码

代码语言: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());

好了 就这样了,没什么技术含量,就不贴图了,拿去用吧

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档