我想要不断地在文本框中显示文本

时间:2012-07-12 10:46:17

标签: c# .net wpf wpf-controls

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

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

3 个答案:

答案 0 :(得分:4)

你可以试试这个

    for (int a = 0; a < 10; a++)
    {
        txtblck.Text = txtblck.Text + a.ToString();
        Application.DoEvents();
        System.Threading.Thread.Sleep(1000);
    }

答案 1 :(得分:2)

这种情况正在发生,因为for循环运行速度太快,以至于您实际上无法看到TextBox更改的文本。使用System.Threading.Thread.Sleep方法暂停循环一段时间,以便观察文本更改:

for(int a = 0; a < 10; a++)
{
    txtblck =txtblk + a.ToString();
    System.Threading.Thread.Sleep(1000);
}

答案 2 :(得分: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();
    }
}