2009-06-26 21 views
6

Tengo un RichTextBox winforms que contiene una gran cantidad de líneas de texto (por ejemplo, archivos de texto 2 MB), y me gustaría cambiar mediante programación el formato de las líneas especificadas, por ejemplo, destacando ellos.Cómo cambiar el formato de las líneas especificadas en un RichTextBox

¿Cómo puedo dirigir las líneas, en lugar de los caracteres? ¿Es un RichTextBox incluso el mejor control para este tipo de cosas, o hay otra alternativa? He probado el Infragistics UltraFormattedTextEditor, pero fue al menos un par de órdenes de magnitud más lento para mostrar el texto, por lo que no es bueno para mis archivos más largos.

Gracias!

Respuesta

8

Para acceder a las líneas en los controles de cuadro de texto se utiliza la propiedad Líneas

richTextBox.Lines

Desde allí se puede iterar a través de las líneas y trabajar con las que desee cambiar.

Editar: De acuerdo, me perdí la parte más destacada (+1 para responder a tu pregunta). Incluyendo el código de trabajo:

int lineCounter = 0; 
foreach(string line in richTextBox1.Lines) 
{ 
    //add conditional statement if not selecting all the lines 
    richTextBox.Select(richTextBox.GetFirstCharIndexFromLine(lineCounter), line.Length); 
    richTextBox.SelectionColor = Color.Red; 
    lineCounter++; 
} 
+0

que me da las líneas; pero ¿cómo puedo decirle al RichtTextBox que resalte las líneas que quiero, por ejemplo? Solo puedo establecer SelectedText por número de personaje, no por línea ...? –

1

OK, voy a documentar la solución que encontré: richTextBox.Lines usando para obtener las líneas como dice Luis, a continuación,

richTextBox.GetFirstCharIndexFromLine(int line) 
richTextBox.Select(int start, int length) 

para seleccionar las líneas relevantes, entonces

richTextBox.SelectionColor... 
richTextBox.SelectionBackground... 

etc. etc. para formatear las líneas.

Cuestiones relacionadas