Cambiar de estilo en richtextbox

21/04/2005 - 12:23 por José Carretero García | Informe spam
Necesito cambiar el estilo de un Richtextbox y no lo consigo. Lo realizo
mediante el siguietne codigo, que es lo que está mal o como deberia de
usarlo.

Gracias por la ayuda

FormateaTexto(RTxt_Previo, TextoEscribir, False, True) => Esta funcion la
uso para cambiar el texto que quiero

Private Sub FormateaTexto(ByVal Componente As RichTextBox, ByVal
TextoACambiar As String, Optional ByVal Negrita As Boolean = False, Optional
ByVal Subrayado As Boolean = False)

Componente.Find(TextoACambiar)

Dim currentFont As System.Drawing.Font = Componente.SelectionFont

Dim newFontStyle As System.Drawing.FontStyle

If Negrita Then

newFontStyle = FontStyle.Bold

Else

newFontStyle = FontStyle.Regular

End If

If Subrayado Then

newFontStyle = FontStyle.Underline

Else

newFontStyle = FontStyle.Regular

End If

Componente.SelectionFont = New Font(currentFont.FontFamily,
currentFont.Size, newFontStyle)

If Subrayado Then

newFontStyle = FontStyle.Underline

Else

newFontStyle = FontStyle.Regular

End If

Componente.SelectionFont = New Font(currentFont.FontFamily,
currentFont.Size, newFontStyle)

End Sub
 

Leer las respuestas

#1 Pep
21/04/2005 - 13:19 | Informe spam
Hola José,
Te enfrentas a variaas dificultades,
En tu codigo estas sobreescribiendo las operaciones de subrrayado y bold,
por lo que cuando las dos sean 'true' solo veras el efecto de la ultima .. o
sea subrrayado.

Luego a la llamada FormateoTexto le pasas un Rtbox llamandolo componente,
debes recordar que al finalizar con 'componente' deberias retornar este
objeto al richtextbox, para que este reflejara los cambios efectuados en el
'componente', estaria mejor usar una funcion que devolviera directamente un
Rtbox.
mirate esto y luego adaptado a lo que necesitas :

Private Sub FormateaTexto(ByVal Componente As RichTextBox, ByVal
TextoACambiar As String, Optional ByVal Negrita As Boolean = False, Optional
ByVal Subrayado As Boolean = False)
Dim posicion As Integer = Componente.Find(TextoACambiar)
Dim currentFont As System.Drawing.Font = Componente.SelectionFont
Dim newFontStyle As System.Drawing.FontStyle
Componente.Select(posicion, Len(TextoACambiar))
newFontStyle = FontStyle.Bold
Componente.SelectionFont = New Font(currentFont.FontFamily,
currentFont.Size, newFontStyle) '
Me.RichTextBox1 = Componente
End Sub

No dudes en replicar si necesitas algo mas.
Pep,


"José Carretero García" escribió:

Necesito cambiar el estilo de un Richtextbox y no lo consigo. Lo realizo
mediante el siguietne codigo, que es lo que está mal o como deberia de
usarlo.

Gracias por la ayuda

FormateaTexto(RTxt_Previo, TextoEscribir, False, True) => Esta funcion la
uso para cambiar el texto que quiero

Private Sub FormateaTexto(ByVal Componente As RichTextBox, ByVal
TextoACambiar As String, Optional ByVal Negrita As Boolean = False, Optional
ByVal Subrayado As Boolean = False)

Componente.Find(TextoACambiar)

Dim currentFont As System.Drawing.Font = Componente.SelectionFont

Dim newFontStyle As System.Drawing.FontStyle

If Negrita Then

newFontStyle = FontStyle.Bold

Else

newFontStyle = FontStyle.Regular

End If

If Subrayado Then

newFontStyle = FontStyle.Underline

Else

newFontStyle = FontStyle.Regular

End If

Componente.SelectionFont = New Font(currentFont.FontFamily,
currentFont.Size, newFontStyle)

If Subrayado Then

newFontStyle = FontStyle.Underline

Else

newFontStyle = FontStyle.Regular

End If

Componente.SelectionFont = New Font(currentFont.FontFamily,
currentFont.Size, newFontStyle)

End Sub





Preguntas similares