在我的程序中,我将文本追加到文本框,然后我的程序在文本框完成呈现之前继续前进。这对用户来说是不好的业力。如何等待文本框完成呈现?
为了演示这个问题,我写了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();
你可以尝试Application.DoEvents()。此方法将控制权暂时传递给消息泵,以允许处理UI事件。有关文本框为何需要渲染以及需要等待的原因的更多信息才会有用。 – Mike 2011-03-17 22:18:40
也许等待正确的事件之一发生? http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox_events.aspx – 2011-03-17 22:21:45
@Mike:我在文本框中显示状态,例如“初始化与外部计算机的通信”。我希望在外部计算机初始化之前显示文本。在广告中给予用户真相的种类。 – 2011-03-17 22:39:54