Изменить цвет всех найденых слов в RichTextBox - C#

Узнай цену своей работы

Формулировка задачи:

Доброго дня всем. Такая проблема, казалось бы пустяковая - в RichTextBox у определенных слов нужно поменять цвет. Был выбран такой способ:
Листинг программы
  1. string[] error = new string[3];
  2. error[0] = @"Не совпадают даты:";
  3. error[1] = @"Не сходятся даты в файле:";
  4. error[2] = @"Не сходятся значимые даты в файле:";
  5. foreach (string t in error)
  6. {
  7. if (Regex.IsMatch(richTextBoxforMessag.Text, t))
  8. {
  9. int startPosition = richTextBoxforMessag.Find(t);
  10. richTextBoxforMessag.SelectionStart = startPosition;
  11. richTextBoxforMessag.SelectionLength = t.Length;
  12. richTextBoxforMessag.SelectionColor = Color.Red;
  13. }
  14. }
Но цвет меняется только у первого вхождения. Кто может предложить эффективный способ сменить цвет у всех вхождений?

Решение задачи: «Изменить цвет всех найденых слов в RichTextBox»

textual
Листинг программы
  1. string regExpr = @"Не совпадают даты:|Не сходятся даты в файле:|Не сходятся значимые даты в файле:";
  2. foreach (Match m in Regex.Matches(richTextBoxforMessag.Text, regExpr))
  3.      {
  4.         richTextBoxforMessag.SelectionStart = m.Index;
  5.         richTextBoxforMessag.SelectionLength = m.Length;
  6.         richTextBoxforMessag.SelectionColor = Color.Red;
  7.      }
  8. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут