我正在处理for循环中的一些xml文件,并根据已处理的文件数量,我想显示进度条。
假设目录中有100个文件,文件在循环中逐个处理,我想根据for循环的当前计数更新进度条。
请建议..
答案 0 :(得分:4)
请查看BackgroundWorker
课程,尤其是ProgressChanged
活动。
答案 1 :(得分:2)
您应该将BackgroundWorker与ProgressBar控件结合使用。这是一个简单的example。
答案 2 :(得分:1)
使用后台工作程序处理100个文件,每次迭代调用ReportProgress,挂钩后台工作程序的Process changed事件并相应地更新进度条。
您可以查看this tutorial了解详情。
答案 3 :(得分:0)
设置最小值和最大值,然后将
Step
属性与PerformStep
方法一起使用以增加ProgressBar的值。
progressBar1.Step = 1;
int part=someList.Count / 100;
....
....
//Inside the loop
if (loop_counter % part == 0)
{
progressBar1.PerformStep();
}
答案 4 :(得分:-1)
for(int i=1;i<linecount;i++)
{
progressBar1.Value = i * progressBar1.Maximum / linecount; //show process bar counts
LabelTotal.Text = i.ToString() + " of " + linecount; //show number of count in lable
int presentage = (i * 100) / linecount;
LabelPresentage.Text = presentage.ToString() + " %"; //show precentage in lable
Application.DoEvents(); keep form active in every loop
}