关于进度条一次显示至满的问题

wr410 2009-04-26 02:20:52
form里有一个进度条,在处理一个任务时,代码大致如下

i=0;
foreach (string a in b)
{
////
//这里是一堆文件处理的代码//
////

i++;
progressBar.Value = (int)(i / Convert.ToInt16(txt_total.Text)) * 100;
}


问题就是,这个进度条在等这段文件处理的时间(这段时间里好象界面没有响应)结束后才一次性显示到100%,而不是预想中的按每一个步骤来显示进度,不知道有什么办法可以解决呢?
...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wr410 2009-04-26
  • 打赏
  • 举报
回复
问题解决,如wjhx 所说,1楼的试了好象不行.
浮生若梦丶 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wjhx 的回复:]
是没有及时刷新,加: Application.DoEvents();
[/Quote]
wjhx 2009-04-26
  • 打赏
  • 举报
回复
是没有及时刷新,加: Application.DoEvents();
飞天鹰 2009-04-26
  • 打赏
  • 举报
回复
1楼的应该可以
carl2500 2009-04-26
  • 打赏
  • 举报
回复
估计是你处理文件的逻辑和界面是在一个线程中的吧,起个异步线程应该可以解决问题的。
m777 2009-04-26
  • 打赏
  • 举报
回复
试试!

i=0;
foreach (string a in b)
{
////
//这里是一堆文件处理的代码//
////

i++;
progressBar.Value = (int)(i / Convert.ToInt16(txt_total.Text)) * 100;
progressBar.Refresh(); //刷新一下

}

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧