-4
for(int a=0;a<10;a++)
{
txtblck =txtblk+ a.ToString();
}

この中で、txtbox は最後にすべてのテキストを表示します。テキストを1つずつ表示したい。

4

3 に答える 3

4

これを試すことができます

    for (int a = 0; a < 10; a++)
    {
        txtblck.Text = txtblck.Text + a.ToString();
        Application.DoEvents();
        System.Threading.Thread.Sleep(1000);
    }
于 2012-07-12T10:49:59.777 に答える
2

これは、forループが非常に高速に実行されているため、TextBox変更内容のテキストを実際に見ることができないために発生しています。System.Threading.Thread.Sleepメソッドを使用してループを一時停止し、テキストの変化を確認できるようにします。

for(int a = 0; a < 10; a++)
{
    txtblck =txtblk + a.ToString();
    System.Threading.Thread.Sleep(1000);
}
于 2012-07-12T10:48:17.623 に答える
0

次のようなことを試してください:(WPFを使用していると想定しましたが、タイマーは何でも構いません)

System.Windows.Threading.DispatcherTimer timer;
int a, count;

void start() {
    timer = new System.Windows.Threading.DispatcherTimer();
    a = 0;
    count = 10;
    timer.Tick += timer_Tick;
    timer.Interval = new TimeSpan(0, 0, 1);
    timer.Start();
}

void timer_Tick(object sender, EventArgs e) {
    updateString();
}

void updateString() {
    if (a < count) {
        txtblck.Text += a.toString();
        a++;
    }
    else {
        timer.Stop();
    }
}
于 2012-07-12T20:29:04.490 に答える