[英]C# how to change textbox value by loop?
我需要创建一个诸如天文钟的脚本。
我写如下代码:
for(int i=0;i<50;i++)
{
textBox.Text = i.Tostring();
Task.Delay(100).Wait();
}
预期的输出就像一个天文钟; 在文本框中从0开始将文本从1增加到49。
但是经过49 * 100毫秒的暂停后,我只有49。
我该如何解决?
运行这段代码的事件或方法必须是异步的。 这是为了使UI能够响应:
private async void btnDoWork_Click(object sender, EventArgs e)
{
for(int i=0;i<50;i++)
{
textBox.Text = i.Tostring();
await Task.Delay(100);
}
}
否则,您将阻止UI线程,并且您将无法看到文本框发生变化。 在您的情况下,您只会看到最后的更改是49。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.