在WinForm窗体操作中执行循环程序时,有时循环数比较大或者程序执行比较慢,为了给用户更好的体验,避免将等待时间视为程序故障,可以添加进度条作为程序进度的可视化器具,将循环次数与进度条的进度挂钩,在循环结束时刚好进度条拉满并自动退出。
需要先建立一个窗体作为父对象,然后再拖入一个进度条,为了更好地展现进度情况再添加一个Label标签实时显示进度百分比。在主程序循环开始前先对该窗体进行初始化,将最大循环次数赋值给进度条最为最大值,最小值采用默认值0;然后再循环体中将循环次数不断通过窗子子函数传递给进度条的Value,实现进度随着循环不断更新。
具体代码如下:
public void Bar_Value(int nownumber)
{
progressBar.Value = nownumber;//将当前循环次数赋值给进度条的Value
progressBar.Show();//将进度条展现出来
double progress_persent = (double)progressBar.Value / progressBar.Maximum * 100;
label_progressbar.Text = Math.Round(progress_persent, 2).ToString() + "%";
Application.DoEvents();
if (progressBar.Value == progressBar.Maximum)
{
this.Close();//当达到最大循环次数时进度条窗口关闭
}
}
大致效果如下: