我试图计算循环迭代并使用LABEL将其显示给用户。试过很多解决方案,但没有运气。 对此有何建议? 提前致谢! 试过这个。
for (int x = 0; x < DataGridView.Rows.Count; x++)
{
CountLabel.Text = x.ToString();
}
答案 0 :(得分:2)
for循环有一个内置计数器 - 例如:
for(int i=0; i <= maxValue; i++)
{
// do stuff
yourLabel.Text = i.ToString();
yourLabel.Update();
}
也许你指的是一个foreach循环(foreach(var x in y)
)。
在这种情况下,您需要自己添加一个计数器:
var loopCounter = 0;
foreach(var x in y)
{
// do stuff
yourLabel.Text = loopCounter.ToString();
yourLabel.Update();
loopCounter++;
}
答案 1 :(得分:0)
在for循环之外声明索引,以便之后可以访问它。
int i = 0;
for (i = 0 ; i < smsCount ; i++)
{
//Send SMS
}
//You can access i here
如果您使用的是foreach循环
int count = 0;
foreach (SMS sms in SMSlist)
{
//Send SMS
count++;
}
您可以访问i并在循环外计数。如果需要从其他方法或类访问它们,您甚至可以在全局范围内声明它们。
答案 2 :(得分:0)
var loopcounter=0;
foreach(var x in y){
loopcounter++;
label.text=loopcounter.toString();
//delay();
}
您应该在进度处理程序或单独的线程中编写它。由于循环的速度比标签可以显示文本快得多。因此,如果您没有延迟直接执行此操作,您可能无法获得所需的效果。
或强>
您还可以使用Progress Bar显示发送短信的进度。
private void button1_Click(object sender, EventArgs e)
{
int i;
progressBar1.Minimum = 0;
progressBar1.Maximum = 200;
for (i = 0; i <= 200; i++)
{
progressBar1.Value = i;
}
}