2012-04-01 47 views
5

Duplicar posibles:
How to select text from the RichTextBox and then color it?C# - el cambio de color RichTextBox de ciertas palabras

Realmente no tengo ningún código para mostrar, porque no sé :(yo. tener un servidor que da salida a la información con las etiquetas Por ejemplo:.

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

¿Cómo me veo en el RichTextBox y hacer todo ERROR etiquetas rojo, INFO etiquetas GREEN, etc.?

+2

La respuesta aceptada en el post Sugerí que un duplicado parece ser una muy buena manera de hacer lo que quiere –

+0

Gracias pero el Regex no funciona - w sombrea el espacio de nombres? –

+1

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

Respuesta

2

creo que esto debería hacer lo que quiera:

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; 
} 

Editar: cambiado StartsWith-Contains

+0

No funciona :( –

+0

@AlexOgden intente con 'Contiene' en lugar de' StartsWith' –

+0

Intente establecer un punto de interrupción en colorForLine y vea si las condiciones se activan – aKzenT

0

Usted puede hacer algo como:

//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

Otra respuesta ya muestra que + es 'SelectionColor' no' SelectionColour' –

+5

¡Lo siento! inglés británico! :) –

+0

@EddardStark - o simplemente inglés como se lo conoce –

Cuestiones relacionadas