Подтвердить что ты не робот

Изменение цвета текста в WinForms RichTextBox

У меня есть RichTextBox, который я пишу строку каждый раз, когда я нажимаю кнопку формы. Каждая строка начинается со строки "Long" или "Short" и заканчивается новой строкой. Каждый раз, когда я добавляю строку, она добавляется к нижней части RichTextBox. Я хотел бы покрасить каждую строку красным, если бы это существо с "длинным" и синим, если оно начинается с "Short". Как я могу это сделать?

4b9b3361

Ответ 1

Конечно, поэтому вы можете использовать свойства SelectionStart, SelectionLength и SelectionColor для этого. Он работает достаточно хорошо.

Откроется эта страница для получения информации об этих свойствах.

Вы можете узнать длину текста RichTextBox и покрасить это, когда вы установите значение свойства SelectionStart на текущую длину, получите длину строки, которую вы собираетесь добавить, установите SelectionLength и затем установите SelectionColor соответствующим образом, Промыть и повторить для каждой добавленной строки.

int length = richTextBox.TextLength;  // at end of text
richTextBox.AppendText(mystring);
richTextBox.SelectionStart = length;
richTextBox.SelectionLength = mystring.Length;
richTextBox.SelectionColor = Color.Red;

Что-то вроде этого. Это, как я помню, работает.

Ответ 2

Я просто делал это в программе, которую писал. Я делал что-то вроде @itsmatt, но я чувствую себя немного проще. Вы можете просто установить Selectioncolor, и с этой точки на RichTextBox будет этот цвет, пока вы не измените его на что-то еще. Если вы тестируете каждую строку, это, похоже, хорошо работает и легко.

if(myString == "Long") 
{ 
  richTextBox.SelectionColor = Color.Red; 
}
else
{
  richTextBox.SelectionColor = Color.Green
}
richTextBox.AppendText(myString);