C# 等待进度窗体实现

在软件开发中我们会遇到在弹出另一个窗体前需要处理一部分内容,处理会耗时一段时间的情况。 
此时我们可以写一个进度窗体在处理前显示出来,处理完成后关闭。 
如这种更新检查窗体:

实现

1、设计进度窗体 
如上,这里命名为Form_Progress,添加一个picture控件,并设置image属性为所需gif动画!

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

private void Form1_Load(object sender, EventArgs e)
        {
            BackgroundWorker worker = new BackgroundWorker();
            worker.WorkerSupportsCancellation = true;

            //CheckUpdate为窗体显示过程中需要处理算法的方法
            worker.DoWork += new DoWorkEventHandler(CheckUpdate);
            worker.RunWorkerAsync();

            //显示进度窗体
            Loading f = new Loading(worker);
            f.Text = "加载中...";
            f.ShowDialog(this);

        }
        //处理算法CheckUpdate,注意参数一致
        public void CheckUpdate(object sender, DoWorkEventArgs e)
        {
            Thread.Sleep(5000);
            //此处编写耗时代码
        }

源码下载:

https://pan.baidu.com/s/1kF3EKSOWU7F5K2i-iii5Pg

赞(1) 打赏
未经允许不得转载:TaKaSa » C# 等待进度窗体实现

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • Q Q(选填)

赞助下

支付宝扫一扫打赏

微信扫一扫打赏