Смена цвета отдельных слов C# richTextBox

Рейтинг: 2Ответов: 1Опубликовано: 29.04.2011

Здравствуйте.

Хотел реализовать такую функцию, чтобы в обработчике нажатия на button в richTextBox выводился определенный текст, при этом одно слово из этого текста окрашивалось в определенный цвет, а остальные шли обычным цветом.

private void PersonShow_Click(object sender, EventArgs e)
{
    string result = classArray[0].Show();
    rText.Text += "Person:" + result + "\n";
    // rText.SelectionLength = 7;
    // rText.SelectionColor = Color.DarkCyan;
}

2 строки я закомментировал. Я хотел, чтобы слово Person выводилось цветом DarkCyan, а остальные - черным. Если клацнуть по кнопке единожды - всё делается, как я задумывал, если клацнуть дважды - уже красится и последующий добавленный текст и т.п.

P.S.: Есть ли функция в C#, которая могла бы в richTextBoxe выделить конкретное слово, или просто следующее слово?

Ответы

▲ 5Принят
string mystring=@"my first string";

if (richTextBox1.Find(mystring)>0)
{
  int my1stPosition = richTextBox1.Find(mystring);
  richTextBox1.SelectionStart = my1stPosition;
  richTextBox1.SelectionLength = mystring.Length;
  richTextBox1.SelectionColor = Color.DarkCyan;
}

Если таких слов несколько, обверни это все в foreach.