我正在尝试使用RichTextBox作为状态显示,但每次附加到RichTextBox的文本时它都不会更新。每次添加新文本时,常规多行TextBox都会更新,但我更喜欢使用RichTextBox。是否需要设置某种属性来查看更新?
更新 此外,如何在每次显示消息时自动向下滚动?
就像我说的,如果我用TextBox替换RichTextBox,我可以看到消息的每一行都被写出来,它也会自动向下滚动到底部以显示添加的最新文本。
void UpdateStatus(string textMessage)
{
if (InvokeRequired)
{
BeginInvoke(new MethodInvoker(() => UpdateStatus(textMessage)));
return;
}
richTextBox.AppendText(textMessage + Environment.NewLine);
}
答案 0 :(得分:2)
简单快捷的解决方案
Application.DoEvents()
答案 1 :(得分:1)
要自动滚动RichTextBox,请使用 ScrollToCaret 方法:
richTextBox.AppendText("Hello");
richTextBox.ScrollToCaret();
答案 2 :(得分:0)
您的代码看起来它应该正常工作,请确保选中正确的InvokeRequired
标记:
void UpdateStatus(string textMessage)
{
if (richTextBox.InvokeRequired)
{
richTextBox.Invoke(new MethodInvoker(() => UpdateStatus(textMessage)));
return;
}
richTextBox.AppendText(textMessage + Environment.NewLine);
}