关于winform的进度条问题。

jhrscn 2006-07-11 03:00:24
比如我要用 WINFORM 项目新建1000个文件,如何做到实时显示新建进度。

如:程序在新建 A 文件夹时,界面上就提示“正在新建 A 文件”
程序在新建 B 文件夹时,界面上就提示“正在新建 B 文件”

第一次做 winform 项目,请大家来个例子,在线等。
...全文
214 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
celas 2006-07-11
  • 打赏
  • 举报
回复
刷新 label 字样之后要调用 label.Update(), 这样才能及时更新.
否则线程忙于处理运算, 无暇重绘你的 WinForm.
jhrscn 2006-07-11
  • 打赏
  • 举报
回复
另外,能不能做到点下按钮马上让按钮变灰,以免用户重复点击。
jhrscn 2006-07-11
  • 打赏
  • 举报
回复
奇怪,label 控件不会刷新,跟WEB里的一样,要执行完全部的程序才显示。
jhrscn 2006-07-11
  • 打赏
  • 举报
回复
怎么 label.Text 没有刷新呀。?
myminimouse 2006-07-11
  • 打赏
  • 举报
回复
up
mqmmx 2006-07-11
  • 打赏
  • 举报
回复
最好用线程来处理你建文件的操作,防止屏幕长时间没有响应
celas 2006-07-11
  • 打赏
  • 举报
回复
唔. 感谢指出缺点.

用 PerformStep 好.

ProgressBar 属性名称记忆错误, 更正:

bar.Minimum = 0;
bar.Maximum = 1000;
bar.Step = 1;

for (int i = 0; i < 1000; i++) {
CreateFile("xxx");
label.Text = "正在创建: xxx";
bar.PerformStep();
}

^^
wuxinrenlydia 2006-07-11
  • 打赏
  • 举报
回复


思路如楼上所说,不过需要把 bar.Length++;一句改成:
bar.PerformStep();

celas 2006-07-11
  • 打赏
  • 举报
回复
ProgressBar 属性名称记忆错误, 更正:

bar.Minimum = 0;
bar.Maximum = 1000;

for (int i = 0; i < 1000; i++) {
CreateFile("xxx"); // 伪代码, xxx 是你的文件名
label.Text = "xxx";
bar.Value++;
}
celas 2006-07-11
  • 打赏
  • 举报
回复
1) 用一个 ProgressBar 显示总体进度
2) 用一个 Label 显示正在创建的文件

比如你用 for 循环创建这 1000 个文件, 那么:

// bar 就是你的 ProgressBar 控件对象
bar.Min = 0;
bar.Max = 1000;

for (int i = 0; i < 1000; i++) {
CreateFile("xxx"); // 伪代码, xxx 是你的文件名
label.Text = "xxx";
bar.Length++;
}
hertcloud 2006-07-11
  • 打赏
  • 举报
回复
用 控件 里面的 ProgressBar

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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