【问题标题】:I want show text in textbox continually我想在文本框中不断显示文本
【发布时间】:2012-07-12 10:46:17
【问题描述】:
for(int a=0;a<10;a++)
{
txtblck =txtblk+ a.ToString();
}

在此,txtbox 将所有文本显示在最后。 我要一个一个地显示文本。

【问题讨论】:

  • 你的眼睛太慢了……
  • @abhi294074 如果任何答案解决了您的问题,请将其标记为您接受的答案。

标签: c# .net wpf wpf-controls


【解决方案1】:

你可以试试这个

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

【讨论】:

    【解决方案2】:

    发生这种情况是因为 for 循环运行得如此之快,以至于您实际上无法看到 TextBox 的文本发生变化。使用System.Threading.Thread.Sleep 方法暂停循环一段时间,以便您可以看到文本的变化:

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

    【讨论】:

    • 在投反对票时留下评论会很好。
    • 线程睡眠没有任何好处。在 for 结束之前 UI 线程没有更新...
    【解决方案3】:

    尝试这样的事情:(我假设您使用的是 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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多