簡體   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