c#如何通过循环改变文本框的值

本文关键字:文本 改变 何通过 循环 | 更新日期: 2023-09-27 18:04:11

我需要创建一个脚本,如chronometer

我写了如下代码;

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

期望的输出就像一个计时器;文本框从0开始递增1到49。

但是经过49*100毫秒的暂停后,我只得到49。

如何解决这个问题?

c#如何通过循环改变文本框的值

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