繁体   English   中英

C#如何通过循环更改文本框值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM