У меня есть функция, которая добавляет текст в RichTextBox в определенном формате, а затем окрашивает только сообщение. Это функция:Индивидуальный цвет в элементе управления RichTextBox - C#
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-мя буквами, иногда цвет не появляется, а иногда это делает. Я боюсь, что это связано с свойством Selection Color. Есть ли лучший способ сделать это или исправить?
Рассмотрите изменение имени переменной 'from', поскольку это ключевое слово. Просто говорю, хотя –
Я пробовал, и он отлично работает. Хотя, когда вы отправляете два одинаковых сообщения, он выделяет только один из них, первый в богатом текстовом поле. Это ваша проблема? –
@OndrejJanacek Это клиент чата TCP. Он прекрасно читает сообщение, но по какой-то причине только длинный текст окрашивается. И небольшой текст, такой как «а», нет. Вот, посмотри: http://puu.sh/4xoqo.png – user2801648