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

在此,txtbox 最后显示所有文本。我想一一显示文本。

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 回答