我希望在此代码中的任何步骤标签中显示该步骤的编号。 在我的代码中只显示标签中的最后一个数字!
我也是Label.Invalidate()完成了,但是不起作用。
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
while (i<100)
{
i++;
label1.Text = string.Format("Step is :{0}", i);
System.Threading.Thread.Sleep(1000);
}
}
答案 0 :(得分:10)
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.update.aspx
设置文本后调用Update
,它会对您有所帮助。但当然你应该考虑后台线程。
label1.Text = string.Format("Step is :{0}", i);
label1.Update();
System.Threading.Thread.Sleep(1000);
答案 1 :(得分:2)
由于您的循环正在UI线程上执行,因此UI线程被阻止,并且在循环完成之前无法更新文本。
您可以考虑使用BackgroundWorker组件,而patterns来完成循环工作。