各位博友好!
现在我想实现这样的功能:窗体状态栏中有个进度条,我想要他显示处理某个事件或者加载某个事项时的进度,我该如何处理呢?
在线等,知道的大大们就不要藏了,给我个DEMO或者介绍个网站、文章都可以的。
3 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
最好使用BackgroundWorker,简单易懂.
例子:
private BackgroundWorker bgwConnect; //初始化BGW
private InitBgw { bgwConnect = new BackgroundWorker(); bgwConnect.WorkerSupportsCancellation = true;//允许中止
bgwConnect.WorkerReportsProgress = true;//允许报告进度-这里就是你需要的
bgwConnect.DoWork += new DoWorkEventHandler(bgwConnect_DoWork); bgwConnect.ProgressChanged += new ProgressChangedEventHandler(bgwConnect_ProgressChanged);
}
private void bgwConnect_DoWork(object sender, DoWorkEventArgs e)
{
//你执行的事件或加载什么
}
private void bgwConnect_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
pBConnect.Value = e.ProgressPercentage;//PBConnect是你定义的ProgressBar,一般这里就可以的,如有问题用下面的
//ChangePB( e.ProgressPercentage);//这里是为了防止和UI线程冲突而用.
}
private void delegate ChangePBDg(int per);
private void ChangePB(int per)
{
if(pBConnect.InvokeRequired)
{
ChangePBDg d = ChangePB;
pBConnect.Invoke(d, per);
}
else
{
pBConnect.Value=per;
}
}
还有个RunWorkerCompleted,在你加载完毕后执行什么.
以上
- 3 回答
- 0 关注
- 598 浏览
添加回答
举报
0/150
提交
取消