我有一个以某种格式将文本附加到 RichTextBox 的函数,然后只为消息着色。这是功能:
internal void SendChat(Color color, string from, string message)
{
if (rtbChat.InvokeRequired)
{
rtbChat.Invoke(new MethodInvoker(() => SendChat(color, from, message)));
return;
}
string Text = String.Format("[{0}] {1}: {2}", DateTime.Now.ToString("t"), from, message);
rtbChat.AppendText(Text);
rtbChat.Find(message);
rtbChat.SelectionColor = color;
rtbChat.AppendText("\r\n");
rtbChat.ScrollToCaret();
}
输出是这样的:
[12:21 AM] Tester: Hello!
但是,当我键入一个小句子时,例如 2 个字母,有时颜色不会出现,有时会出现。我担心它与选择颜色属性有关。有没有更好的方法来做到这一点或修复它?