2012-06-25 54 views
5

Necesito una cierta porción de mi texto en RTB para resaltar no en el sentido de cambiar el estilo/color de fuente, sino en el sentido de hacer una selección de bloque con un color particular. Esto es similar a cómo Visual Studio resalta una línea durante el modo de depuración.Cuadro de texto enriquecido cómo resaltar el bloque de texto

¿Cómo puedo lograr esta característica mediante RTB o, mejor dicho, ¿es posible? Si no es posible, me gustaría escuchar otra forma de realizar la tarea anterior.

+0

posible duplicado de [Cómo presentan alternancia de colores de línea para a Winforms RichTextBox?] (http://stackoverflow.com/questions/5982006/how-to-have-alternating-line-colors-for-a-winforms-richtextbox) –

+0

Creo que estás buscando [Sci ntillaNET] (http://scintillanet.codeplex.com/). Por otro lado, si quiere hacer esto usted mismo en RTB, puede hacerlo encontrando el 'lineNumber' utilizando [TextBoxBase.Lines] (http://msdn.microsoft.com/en-us/library/system) .windows.forms.textboxbase.lines.aspx) propiedad. Entonces ... // Seleccione la línea de su número richTextBox.GetFirstCharIndexFromLine (lineNumber); richTextBox.Select (startIndex, length); // Establecer el color de fondo y de fondo de texto seleccionado richTextBox.SelectionColor = System.Drawing.Color.White; richTextBox.SelectionBackColor = System.Drawin – ABH

Respuesta

7

Creo que está buscando ScintillaNET.

Por otro lado, si quiere hacer esto usted mismo en RTB, puede hacerlo primero encontrando el lineNumber usando la propiedad TextBoxBase.Lines. Entonces ...

//Select the line from it's number 
startIndex = richTextBox.GetFirstCharIndexFromLine(lineNumber); 
richTextBox.Select(startIndex, length); 

//Set the selected text fore and background color 
richTextBox.SelectionColor = System.Drawing.Color.White; 
richTextBox.SelectionBackColor= System.Drawing.Color.Blue; 
+0

¿No está ignorando el valor de retorno 'GetFirstCharIndexFromLine()' en lugar de guardarlo en la variable 'startIndex'? – Jack

+1

@Jack - actualizado, gracias por destacar. – ABH

9

sí se puede establecer el BackColor de un RichTextBox Selección utilizando el RichTextBox.SelectionBackColor propiedad.

int blockStart = 1; //arbitrary numbers to test 
int blockLength = 15; 
richTextBox1.SelectionStart = blockStart; 
richTextBox1.SelectionLength = blockLength; 
richTextBox1.SelectionBackColor = Color.Yellow; 
Cuestiones relacionadas