您的位置:首页 > 编程语言 > C#

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: