2011-10-28 46 views
10

Quiero hacer un editor de texto en el que puedo negrita, cambio de color, etc, etcCómo hacer un texto en negrita en un cuadro de texto enriquecido C#

me encontré con este código para trabajar más o menos:

public static void BoldSelectedText(RichTextBox control) 
{ 
    control.SelectionFont = new Font(control.Font.FontFamily, control.Font.Size,   FontStyle.Bold); 
} 

Pero cuando intento escribir más letras en el rtf, sigue en negrita ..

¿Cómo puedo hacer para que solo el texto seleccionado vaya en negrita y las siguientes líneas no lo hagan a menos que seleccione el texto y presione "Hacer Negrita "botón.

Respuesta

14

Debe establecer la fuente después de la selección en la fuente original.

Si lo desea, puede guardar SelectionStart y SelectionLength y llamar al método Select para seleccionar nuevamente el texto.

// Remember selection 
int selstart = control.SelectionStart; 
int sellength = control.SelectionLength; 

// Set font of selected text 
// You can use FontStyle.Bold | FontStyle.Italic to apply more than one style 
control.SelectionFont = new Font(control.Font, FontStyle.Bold); 

// Set cursor after selected text 
control.SelectionStart = control.SelectionStart + control.SelectionLength; 
control.SelectionLength = 0; 
// Set font immediately after selection 
control.SelectionFont = control.Font; 

// Reselect previous text 
control.Select(selstart, sellength); 

de esta manera el texto permanece seleccionado, y la fuente sigue siendo correcta.

+0

thx, that funcionó :) – chrs

+0

¿Sabes cómo puedo texto en negrita y cursiva? – chrs

+1

http://stackoverflow.com/questions/4198429/substract-flag-from-fontstyle-toggling-fontstyles-c que ayudó – chrs

Cuestiones relacionadas