放一个 backGroudWork控件 worker.ProgressChanged += new ProgressChangedEventHandler(ProgessChanged); public void ProgessChanged(object sender, ProgressChangedEventArgs e) { this.progressBar1.Value = e.ProgressPercentage; //将异步任务进度的百分比赋给进度条 }
写个委托呗。private delegate void ProgressChanged(int change); public ProgressChanged UpdateProgressBar { get;set;} public int value = 0; public int Value { get{ return this.value;} set{ this.value = value; UpdateProgressBar(value); } }... ... ...数据绑定这么整的。
1,在异步的事件中,显示完成的内容,如xxx已经完成,yyy已经完成,显示这样的信息。
2,你还可以在异步开始时先计算总的步骤,异步的时候,完成一次就设置下value就可以了
放一个 backGroudWork控件 worker.ProgressChanged += new ProgressChangedEventHandler(ProgessChanged); public void ProgessChanged(object sender, ProgressChangedEventArgs e)
{
this.progressBar1.Value = e.ProgressPercentage;
//将异步任务进度的百分比赋给进度条
}
public ProgressChanged UpdateProgressBar { get;set;}
public int value = 0;
public int Value
{
get{ return this.value;}
set{ this.value = value; UpdateProgressBar(value); }
}...
...
...数据绑定这么整的。
1.如果确实不好计算进度,就考虑不使用进度条,而用一个LABEL之类的控件提示
2.先计算好必须要进行的步骤,比如有10个步骤
3.每完成一步就刷新LABEL的内容如:1/10:连接数据库 2/10:查询内容,虽然看不到详细的进度,但可以知道运行到哪一步作为程序来说,要不要把运行进度告诉用户,对程序是没有任何影响的,进度条只会产生较好的用户感受,而进度条只是众多增强用户感受的方式之一,不必非得要用他,达到目的就行。