Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Insertar texto en negrita en RichTextBox

Estas en el tema de Insertar texto en negrita en RichTextBox en el foro de Visual Basic clásico en Foros del Web. Hola muchachada: A ver si me podéis echar una mano con este asunto. Tengo un formulario con un RichTextBox y necesito que muestre información con ...
  #1 (permalink)  
Antiguo 30/01/2011, 05:28
Avatar de linternazo  
Fecha de Ingreso: abril-2010
Mensajes: 76
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Insertar texto en negrita en RichTextBox

Hola muchachada:

A ver si me podéis echar una mano con este asunto.

Tengo un formulario con un RichTextBox y necesito que muestre información con algunas negritas como por ejemplo:

Ángel García
Director general asociado.

Lola Garrido
Asesora técnica en diversos proyectos


Lo que vengo haciendo para conseguir esto es lo siguiente:

1.- Pasar el texto al RTB
2.- Seleccionar la parte que quiero poner en negrita con SelectionStart, SelectionLenght.
3.- Asignar negrita.
4.- Así con todos los textos en negrita.

El caso es que este método es bastante pesado y además como el texto es dinámico me cuesta encontrar donde poner el selectionstart.

He buscado info al respecto pero no doy con la tecla. ¿Existe algún método para indicar al RTB que el trozo de texto que le estás pasando debe ponerlo en negrita?

Espero haberme explicado bien. Estoy con Visual Basic 2010.

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 31/01/2011, 02:36
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 4 meses
Puntos: 29
Respuesta: Insertar texto en negrita en RichTextBox

Para pasar texto a negrita tienes que seleccionar lo que quieres cambiar, p.ej. con "rtb.selstart=pos_inicio" y "rtb.sellenght=longitud", y despues usas "rtb.font.bold=true"

La única otra opcion es hacerlo a mano seleccionando el texto con el raton y creando un boton que pase lo seleccionado a negrita.

Si los datos al cargarlos contienen alguna marca que puedas reconocer para saber que esa parte va en negrita, quiza puedas automatizarlo más, pero si no dás más detalles no podemos saberlo.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 31/01/2011 a las 02:41
  #3 (permalink)  
Antiguo 02/02/2011, 17:13
Avatar de linternazo  
Fecha de Ingreso: abril-2010
Mensajes: 76
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Insertar texto en negrita en RichTextBox

Gracias por la respuesta.

El usuario que use la aplicación tiene que ver una caja de texto con los nombres en negrita.

El problema es que ese texto cambia cada vez que se carga el formulario por lo que andar calculando el selstart y sellenght de todos los nombres es una pesadilla.

Podría poner una marca delante de cada nombre pero no veo como eso me puede ayudar a ponerlo en negrita. Ej:

***** Código *****

rtb.text = rtb.text & "+ " & nombre(1) & vbcrlf
rtb.text = rtb.text & descripcion(1)
rtb.text = rtb.text & "+ " & nombre(2) & vbcrlf
rtb.text = rtb.text & descripcion(2)


***** Resultado *****

+ Ángel García
Director general asociado.

+ Lola Garrido
Asesora técnica en diversos proyectos
  #4 (permalink)  
Antiguo 03/02/2011, 09:46
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años, 1 mes
Puntos: 53
Respuesta: Insertar texto en negrita en RichTextBox

Hola, si los nombres son siempre los mismos y tienes una tabla con ellos, tampoco le veo yo mayor problema.

Se trata de crear una función genérica a la que le pases el nombre que quieres que ponga en negrita y el RichText que contiene este dato.

La función deberá buscar donde empieza el texto así como la longitud que tiene y efectuar el cambio. Es bastante simple.

Haz lo siguiente:

Crea un Formulario con RichTextBox1, Text1 y Command1 y pega el siguiente código:

Código vb:
Ver original
  1. Private Sub Form_Load()
  2.   RichTextBox1.TextRTF = "Esto es una prueba de modificar el texto"
  3. End Sub
  4.  
  5. Private Sub Command1_Click()
  6.   EnNegrita RichTextBox1, Text1.Text
  7. End Sub
  8.  
  9. Private Sub EnNegrita(Rtf As RichTextBox, Texto As String)
  10.   Rtf.SelStart = InStr(Rtf.Text, Texto) - 1
  11.   Rtf.SelLength = Len(Texto)
  12.   Rtf.SelBold = True
  13. End Sub

Verás como funciona para que lo tengas claro.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: negrita, richtextbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:28.