[英]C# - Updating Progress Bar
我有一个将 excel 记录导入用户界面以读取数据的应用程序。 此导入需要相当长的时间,因此我正在尝试为用户实现一个进度条以查看进度。
首先,我以外部形式进行了操作,一切正常。 现在我将它更改为加载表单上的进度条,突然它不起作用。 我所做的只是从我的类源表中更改表单引用。 这是执行进度条的代码。
我对该代码所做的唯一更改是更改为“OpenForm”,因为这就是新进度条所在的位置。 我知道这段代码会将进度条设置为 20,之后不会移动。 这是在只有进度条的表单上工作,但是在这个表单上它不起作用。 我错过了什么吗?
OpenForm.progressBar1.Minimum = 0;
OpenForm.progressBar1.Maximum = 100;
OpenForm.progressBar1.Step = 1 / 50;
for (int row = 8; row <= 50; row++)
{
IssueRef.Add(ExcelWksht1.Cells[row, 1].Value.ToString());
Date.Add(ExcelWksht1.Cells[row, 4].Value.ToString());
Status.Add(ExcelWksht1.Cells[row, 2].Value.ToString());
Severity.Add(ExcelWksht1.Cells[row, 9].Value.ToString());
Text.Add(ExcelWksht1.Cells[row, 3].Value.ToString());
decimal ProgressVal = ( 10m /50m) * 100m;
int Val = Convert.ToInt32(ProgressVal);
OpenForm.progressBar1.Value = Val;
OpenForm.progressBar1.Refresh();
}
for (int row = 8; row <= 50; row++)
{
IssueRef.Add(ExcelWksht1.Cells[row, 1].Value.ToString());
Date.Add(ExcelWksht1.Cells[row, 4].Value.ToString());
Status.Add(ExcelWksht1.Cells[row, 2].Value.ToString());
Severity.Add(ExcelWksht1.Cells[row, 9].Value.ToString());
Text.Add(ExcelWksht1.Cells[row, 3].Value.ToString());
decimal ProgressVal = ( 10m /50m) * 100m;
int Val = Convert.ToInt32(ProgressVal);
OpenForm.progressBar1.Value = Val;
//OpenForm.progressBar1.Refresh(); remove this
//add
Application.DoEvents();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.