2012-04-01 3 views
5

Можно создать дубликат:
How to select text from the RichTextBox and then color it?C# - изменение цвета RichTextBox некоторых слов

Я действительно не имеют никакого кода, чтобы показать, потому что я не знаю :(я. есть сервер, который выводит информацию с бирками. Например:

15:44 [INFO] Loaded Properties 
15:45 [ERROR] Properties not found 

Как я смотрю в RichTextBox и сделать все ОШИБКА теги red, INFO теги GREEN и т. Д.?

+2

Принятая ответ на пост Я предложил, чтобы дубликат выглядел очень хорошим способом делать то, что вы хотите –

+0

Спасибо, но Regex не работает - w шляпы пространства имен? –

+1

System.Text.RegularExpressions; http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.aspx –

ответ

2

Я думаю, что это должен делать то, что вы хотите:

for(int i=0; i<rtb.Lines.Length; i++) 
{ 
    string text = rtb.Lines[i]; 
    rtb.Select(rtb.GetFirstCharIndexFromLine(i), text.Length); 
    rtb.SelectionColor = colorForLine(text); 
} 

private Color colorForLine(string line) 
{ 
    if(line.Contains("[INFO]", StringComparison.InvariantCultureIgnoreCase) return Color.Green; 
    if(line.Contains("[ERROR]", StringComparison.InvariantCultureIgnoreCase) return Color.Red; 

    return Color.Black; 
} 

Edit: Изменено StartsWith к Contains

+0

Не работает :( –

+0

@AlexOgden попробуйте с 'Contains' вместо' StartsWith' –

+0

Попробуйте установить точку останова в colorForLine и посмотреть, не попали ли условия – aKzenT

0

Вы можете сделать что-то вроде:

//will select characters form index 0 to 9 
richTextBox1.Select(0, 10); 

//will set the characters from 0 to 9 to red 
richTextBox1.SelectionColor = Color.Red; 
+0

Другой ответ уже показывает, что + это 'SelectionColor' не' SelectionColour' –

+5

Извините! Британский английский! :) –

+0

@EddardStark - или просто английский, как известно –

Смежные вопросы