Я пытаюсь раскрасить части строки, которые нужно добавить в RichTextBox. У меня есть строка, построенная из разных строк.
string temp = "[" + DateTime.Now.ToShortTimeString() + "] " +
userid + " " + message + Environment.NewLine;
Вот как будет выглядеть сообщение после его создания.
[21:23] Пользователь: здесь мое сообщение.
Я хочу, чтобы все внутри и включая скобки [9:23] было одного цвета, «пользователь» - другим цветом, а сообщение - другим цветом. Затем я хочу, чтобы эта строка была добавлена к моему RichTextBox.
Как я могу этого добиться?
Ответы:
Вот метод расширения, который перегружает
AppendText
метод параметром цвета:И вот как вы бы его использовали:
Обратите внимание, что вы можете заметить некоторое мерцание, если выводите много сообщений. См. Эту статью C # Corner, чтобы узнать, как уменьшить мерцание RichTextBox.
источник
box.Text += mystring
и поэтому все цвета исчезли. Когда я заменил это наbox.AppendText(mystring)
, он работал как шарм.AppendText(string text)
с WinFormsЯ расширил метод с помощью шрифта в качестве параметра:
источник
Это модифицированная версия, которую я вставил в свой код (я использую .Net 4.5), но я думаю, что она должна работать и на 4.0.
Отличия от оригинала:
источник
Я считаю, что изменение «выделенного текста» в RichTextBox - неправильный способ добавления цветного текста. Итак, вот способ добавления «цветового блока»:
Из MSDN :
Поэтому я думаю, что вам нужно разделить вашу строку в зависимости от цвета деталей и создать столько
Run
объектов, сколько необходимо.источник
Это работа для меня! Надеюсь, он будет вам полезен!
источник
Выбрав текст, как сказал кто-то, пусть выбор появится на мгновение. В
Windows Forms applications
не существует никаких других решений для этой проблемы, но сегодня я нашел плохо, работает, способ решить: вы можете положитьPictureBox
внахлест наRichtextBox
с скриншотом , если, во время выбора и изменения цвета или шрифта, что делает его после того, как снова появятся все, когда операция будет завершена.Код здесь ...
Лучше использовать WPF; это решение не идеально, но для Winform оно работает.
источник
источник
Используя Selection в WPF, объединяя несколько других ответов, другой код не требуется (кроме перечисления Severity и функции GetSeverityColor)
источник
Я создал эту функцию после исследования в Интернете, так как я хотел распечатать строку XML, когда вы выбираете строку из представления сетки данных.
и так вы это называете
источник