如何等待Textbox完成渲染?

时间:2011-03-17 22:12:33

标签: c# events textbox

在我的程序中,我将文本附加到文本框,然后我的程序在文本框完成渲染之前继续。这对用户来说是不好的业力。

为了演示此问题,我已写入System.Console,在文本显示在控件中(在我的应用程序中)之前,我看到MS Visual C#Express控制台选项卡中显示了许多文本行。

我试过Textbox.Update()没有运气,程序一直在执行。 Textbox.Refresh()也无济于事。

如何让线程(GUI或其他线程)等到文本框完成渲染?

我想执行以下操作(在伪代码中):

Textbox.AppendText("New text\r\n");

// Execution blocked until Textbox finishes drawing.
Textbox.WaitForRenderingToFinish();

1 个答案:

答案 0 :(得分:0)

如果你这样做会怎样?

Textbox.AppendText("New text\r\n");
Application.DoEvents();

正如上一篇文章中所讨论的那样:How to force Buttons, TextBoxes to repaint on form after a MessageBox closes in C#在UI线程上进行工作并不是一个好习惯。这是你在做什么的?当您继续执行程序时,整个UI是否没有响应,或者它只是不会更新的文本框?