WINFORM状态栏中进度条的处理问题

各位博友好!

现在我想实现这样的功能:窗体状态栏中有个进度条,我想要他显示处理某个事件或者加载某个事项时的进度,我该如何处理呢?

在线等,知道的大大们就不要藏了,给我个DEMO或者介绍个网站、文章都可以的。

小怪兽爱吃肉
浏览 599回答 3
3回答

慕的地6264312

最好使用BackgroundWorker,简单易懂. 例子: private BackgroundWorker bgwConnect; //初始化BGWprivate 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,在你加载完毕后执行什么. 以上

桃花长相依

一般需要进度条的,肯定是要显示一些密集型计算的状态,一般会使用异步去实现。 你可以使用委托及控件的beginInvoke去做异步计算,去更新UI
打开App,查看更多内容
随时随地看视频慕课网APP