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

时间:2016-08-27 08:30:20

标签: c# loops textbox

我需要创建一个像天文台这样的脚本。

我写了如下代码;

for(int i=0;i<50;i++)
{
    textBox.Text = i.Tostring();
    Task.Delay(100).Wait();
}

预期的输出就像计时器;文本框中从0开始增加1到49的文本。

但是在49 * 100毫秒暂停之后我只得到49分。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

运行这段代码的事件或方法需要是异步的。这是为了让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。