RichTextBox在用作文本状态显示时不会不断更新
本文关键字:更新 显示 作文本 状态 RichTextBox | 更新日期: 2023-09-27 18:25:57
我正试图使用RichTextBox作为状态显示,但它并不是每次我附加到RichTextBox的文本时都会更新的。一个常规的多行TextBox在每次添加新文本时都会更新,但我更喜欢使用RichTextBox。是否有某种属性需要设置才能查看更新?
更新:此外,如何在每次显示消息时自动向下滚动?
就像我说的,如果我用TextBox替换RichTextBox,我可以看到每一行写出来的消息,它也会自动向下滚动到底部,显示最新添加的文本。
void UpdateStatus(string textMessage)
{
if (InvokeRequired)
{
BeginInvoke(new MethodInvoker(() => UpdateStatus(textMessage)));
return;
}
richTextBox.AppendText(textMessage + Environment.NewLine);
}
是一个简单快捷的解决方案
Application.DoEvents()
要使RichTextBox自动滚动,请使用ScrollToCaret方法:
richTextBox.AppendText("Hello");
richTextBox.ScrollToCaret();
您的代码看起来应该正常工作,请确保检查正确的InvokeRequired
标志:
void UpdateStatus(string textMessage)
{
if (richTextBox.InvokeRequired)
{
richTextBox.Invoke(new MethodInvoker(() => UpdateStatus(textMessage)));
return;
}
richTextBox.AppendText(textMessage + Environment.NewLine);
}