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

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

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

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

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

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

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


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

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

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