C# 等待进度窗体实现
2017-01-20 13:42
183 查看
C#等待进度窗体实现
在软件开发中我们会遇到在弹出另一个窗体前需要处理一部分内容,处理会耗时一段时间的情况。此时我们可以写一个进度窗体在处理前显示出来,处理完成后关闭。
如这种更新检查窗体:
实现
1、设计进度窗体如上,这里命名为Form_Progress,这里由于处理内容算法时间的不确定,将进度条样式设置为Marquee
2、修改其构造函数
这里需要将BackgroundWorker 的一个实例传进去
//构造函数 public Form_Progress(BackgroundWorker worker) { InitializeComponent(); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); }
3、添加处理完成关闭代码
此处处理完成后关闭窗体
public void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { this.Close(); }
4、编写主窗体代码
上面进度窗体关闭后启动的窗体,此处命名为Form1
//Form1_Load BackgroundWorker worker = new BackgroundWorker(); worker.WorkerSupportsCancellation = true; //CheckUpdate为窗体显示过程中需要处理算法的方法 worker.DoWork += new DoWorkEventHandler(CheckUpdate); worker.RunWorkerAsync(); //显示进度窗体 Form_Progress f = new Form_Progress(worker); f.Text = "检查更新..."; f.ShowDialog(this); //处理算法CheckUpdate,注意参数一致 public void CheckUpdate(object sender, DoWorkEventArgs e) { //XX算法 }
5、总结
至此完成了在启动Form1窗体前显示进度窗体,并处理CheckUpdate方法中的算法,算法执行完成后关闭进度窗体启动Form1
相关文章推荐
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习
- C# 抽象类(知识要点归纳总结)
- C#设计模式(10)——组合模式
- [.NET] C# 知识回顾
- C# datagridview显示行号
- 19.C#:支持标准查询运算符的集合接口,Linq查询语句
- des加密解密源码 C# key值问题分析
- C#生成MD5的函数代码
- C# 用file 上传文件大小时判断文件大小 file onchange 事件为什么只执行一次解决方案
- C#添加Windows服务 定时任务
- C# 添加Windows服务,定时任务
- C#打开文件 ,文件夹
- C# ArcEngine 实现点击要素高亮并弹出其属性
- 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标
- c#中的结构
- C# 位运算符
- C# 斐波那契数列
- C# 斐波那契数列
- C# 语言—基础知识
- C#之泛型实例化对象的理解