none
Como darle formato a un Substring RRS feed

  • Pregunta

  • Hola, no se si sea posible pero me gustaría poner en negrita una parte de un string EJ: tengo esto en un RitchTextBox

    Nombre: Juan

    Apellido: Gomez

    Edad: 19

    Y el resultado que quisiera seria este:

    Nombre: Juan

    Apellido: Gomez

    Edad: 19

    Gracias de ante mano

    viernes, 22 de septiembre de 2017 18:48

Respuestas

  • For index = 0 To RichTextBox1.Lines.Count - 1
    	RichTextBox1.Select(RichTextBox1.GetFirstCharIndexFromLine(index),
    				RichTextBox1.Lines(index).IndexOf(":") + 1)
    	RichTextBox1.SelectionColor = Color.DarkBlue
    Next


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Renzo20 sábado, 23 de septiembre de 2017 2:26
    viernes, 22 de septiembre de 2017 19:36
  • En un evento Keyprees pega esto : Te recomiendo activarlo cada ves que das enter  o  ":" ya depende de usted suerte.

        Dim var As String = RichTextBox1.Rtf
            var = Replace(var, "\f0\fs", "\b\f0\fs")
            var = Replace(var, ":", ": \b0 ")
            var = Replace(var, "\par", "\par\b ")
            var = Replace(var, "\b\b\", "\b\")
            RichTextBox1.Rtf = var


    No soy un vendido pero algo vendo
    Si soy divertido pero esto es serio
    Vivo riendo pero eso no quiere decir que nada me importa
    Ya pase las malas, me tocan las buenas, por eso empece a disfrutar ♪♫


    • Propuesto como respuesta D A M N 1 S e l f viernes, 22 de septiembre de 2017 21:32
    • Editado D A M N 1 S e l f viernes, 22 de septiembre de 2017 21:33
    • Marcado como respuesta Renzo20 sábado, 23 de septiembre de 2017 2:26
    viernes, 22 de septiembre de 2017 21:32
  • ¿Y no es posible hacerlo con todo y salto de linea sin necesidad de cambiar el tamaño ni la propiedad WordWrap? Seria mas o menos así: todo el contenido antes de ":" hasta " " ponerlo de un color y lo demás normal. 

    Configura la propiedad WordWrap en False, pinta las etiquetas y luego vuelve a configurar la propiedad WordWrap a su valor por defecto (True).

    RichTextBox1.WordWrap = False
    For index = 0 To RichTextBox1.Lines.Count - 1
    	RichTextBox1.Select(RichTextBox1.GetFirstCharIndexFromLine(index),
    				RichTextBox1.Lines(index).IndexOf(":") + 1)
    	RichTextBox1.SelectionColor = Color.DarkBlue
    Next
    RichTextBox1.WordWrap = True


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Renzo20 sábado, 23 de septiembre de 2017 13:18
    sábado, 23 de septiembre de 2017 4:35

Todas las respuestas

  • Hi, 

    Te podra ayudar este apartado, de no ser asi, contactame

    https://msdn.microsoft.com/es-es/library/aa287595(v=vs.71).aspx

    Saludos-

    viernes, 22 de septiembre de 2017 18:57

  • RichTextBox1.Rtf="{\rtf1\ansi This is in \b bold\b0.}"

    fuente aqui


    No soy un vendido pero algo vendo
    Si soy divertido pero esto es serio
    Vivo riendo pero eso no quiere decir que nada me importa
    Ya pase las malas, me tocan las buenas, por eso empece a disfrutar ♪♫


    viernes, 22 de septiembre de 2017 19:02
  • Hola, por lo que veo la secuencia: RichTextBox1.Rtf = "{\rtf1\b GOMEZ\b}" o  RichTextBox1.Rtf="{\rtf1\ansi This is in \b bold\b0.}" pone en negrita no solo una parte si no todo el Texto, entonces para eso lo hago manual y listo. Lo que quisiera es como recorrer todo el texto del RitchTextBox y los caracteres que se encuentren antes de ":" (los dos puntos) se pongan en negrita y en caso que no se pueda pues ponerlos de otro color para diferenciar el encabezado de la respuesta. Gracias
    viernes, 22 de septiembre de 2017 19:11
  • Hola, espero te pueda ayudar 

    Dim sb = New System.Text.StringBuilder()
        sb
    .Append("{\rtf1\ansi")
        sb
    .Append("\b Nombre:\b0  Juan")
        sb
    .Append(" \par}")


       
    RichTextBox1.Rtf = sb.ToString()

    Si te ayudo no olvides comentar

    viernes, 22 de septiembre de 2017 19:12
  • El richTextBox lo llenas con un dataset ?  o  solo ingresar manualmente? 


    No soy un vendido pero algo vendo
    Si soy divertido pero esto es serio
    Vivo riendo pero eso no quiere decir que nada me importa
    Ya pase las malas, me tocan las buenas, por eso empece a disfrutar ♪♫

    viernes, 22 de septiembre de 2017 19:20
  • Le paso los datos de un datagridView algo asi:

       RichTextBox1.Text = PruebaDataGridView.CurrentRow.Cells("ColumnaName").Value.ToString

    La forma de Killer1923 es casi así lo que necesito solo que debe ser con los datos que ya tiene no pasarle yo los datos. Gracias

    Dim sb = New System.Text.StringBuilder()
        sb.Append("{\rtf1\ansi")
        sb.Append("\b Nombre:\b0  Juan")
        sb.Append(" \par}")
    
    
        RichTextBox1.Rtf = sb.ToString()



    • Editado Renzo20 viernes, 22 de septiembre de 2017 19:27
    viernes, 22 de septiembre de 2017 19:27
  • For index = 0 To RichTextBox1.Lines.Count - 1
    	RichTextBox1.Select(RichTextBox1.GetFirstCharIndexFromLine(index),
    				RichTextBox1.Lines(index).IndexOf(":") + 1)
    	RichTextBox1.SelectionColor = Color.DarkBlue
    Next


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Renzo20 sábado, 23 de septiembre de 2017 2:26
    viernes, 22 de septiembre de 2017 19:36
  • Me quedo ese resultado, OJO: solo cambie el color

    viernes, 22 de septiembre de 2017 20:00
  • El problema que presentas se debe a que se está produciendo un salto de línea. Debes configurar dos propiedades: WordWrap a False y ScrollBars a Horizontal (opcional), claro, también podrías aumentar el ancho del control a un tamaño prudente para que los datos se muestren completamente.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    viernes, 22 de septiembre de 2017 20:11
  • Y no es posible hacerlo con todo y salto de linea? si necesidad de cambiar el tamaño ni la propiedad WordWrap? Seria mas o menos así: Todo el contenido antes de ":" hasta " " ponerlo de un color y lo demás normal. Así:

    Nombre: Juan " "

    Apellido: Gomez  +" "

    Edad: 19 

    de los dos puntos a el espacio vació de la linea anterior, o alguna otra forma parecida. Si no se puede esta bien, pero me gustaría mas de esa forma. Gracias

    viernes, 22 de septiembre de 2017 20:56
  • En un evento Keyprees pega esto : Te recomiendo activarlo cada ves que das enter  o  ":" ya depende de usted suerte.

        Dim var As String = RichTextBox1.Rtf
            var = Replace(var, "\f0\fs", "\b\f0\fs")
            var = Replace(var, ":", ": \b0 ")
            var = Replace(var, "\par", "\par\b ")
            var = Replace(var, "\b\b\", "\b\")
            RichTextBox1.Rtf = var


    No soy un vendido pero algo vendo
    Si soy divertido pero esto es serio
    Vivo riendo pero eso no quiere decir que nada me importa
    Ya pase las malas, me tocan las buenas, por eso empece a disfrutar ♪♫


    • Propuesto como respuesta D A M N 1 S e l f viernes, 22 de septiembre de 2017 21:32
    • Editado D A M N 1 S e l f viernes, 22 de septiembre de 2017 21:33
    • Marcado como respuesta Renzo20 sábado, 23 de septiembre de 2017 2:26
    viernes, 22 de septiembre de 2017 21:32
  • ¿Y no es posible hacerlo con todo y salto de linea sin necesidad de cambiar el tamaño ni la propiedad WordWrap? Seria mas o menos así: todo el contenido antes de ":" hasta " " ponerlo de un color y lo demás normal. 

    Configura la propiedad WordWrap en False, pinta las etiquetas y luego vuelve a configurar la propiedad WordWrap a su valor por defecto (True).

    RichTextBox1.WordWrap = False
    For index = 0 To RichTextBox1.Lines.Count - 1
    	RichTextBox1.Select(RichTextBox1.GetFirstCharIndexFromLine(index),
    				RichTextBox1.Lines(index).IndexOf(":") + 1)
    	RichTextBox1.SelectionColor = Color.DarkBlue
    Next
    RichTextBox1.WordWrap = True


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Renzo20 sábado, 23 de septiembre de 2017 13:18
    sábado, 23 de septiembre de 2017 4:35
  • Gracias, justo lo que quería.
    sábado, 23 de septiembre de 2017 13:18