Visual Basic.NET - Como enviar texto con color en texbox.

   
Vista:
Imágen de perfil de Remy

Como enviar texto con color en texbox.

Publicado por Remy (22 intervenciones) el 26/09/2015 18:56:22
Saludos, estoy con un tema y es que tengo dos textbox y al escribir en uno el texto es enviado al otro... Hasta ahí voy bien, ahora si yo quisiera que el texto enviado fuera recibido con un color por ejemplo rojo, sin colorear otro texto que pudiera haber previamente, sino solo el enviado... Como podría hacer esto? porque el si toco el ForeColor del segundo texbox me cambiaría todo el texto y y solo necesito que el texto enviado sea coloreado.

Como para dar mas detalles es lo que suele pasar en un chat, en un usuario escribe de un color y el otro con otro color para diferenciar con mas facilidad el texto.

Bueno muchas gracias y espero alguna ayuda!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como enviar texto con color en texbox.

Publicado por Miguel (352 intervenciones) el 26/09/2015 20:16:01
Hola, para eso usa el control "RichTextBox"...

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Remy

Como enviar texto con color en texbox.

Publicado por Remy (22 intervenciones) el 27/09/2015 13:07:33
Genial uso Rich pero como pongo texto en color sin que me cambie el resto, solo el que viene del X Rich o textbox como valla a ser...?

En realidad no me importa que control tenga que usar, solo es entender como llegar a ese fin!

alguna sugerencia?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como enviar texto con color en texbox.

Publicado por Miguel (352 intervenciones) el 27/09/2015 17:33:26
Hola Remy,
Para cambiar la fuente/color de determinado texto en un control RichTextBox debes seleccionar el texto deseado (con SelectionStart y SelectionLength) y usar los métodos "Selection" para modificarlo. Ejemplo:

1
2
3
4
5
6
tuRichTextBox.Text = "Algún texto."
tuRichTextBox.SelectionStart = 6 'Inicio de la selección
tuRichTextBox.SelectionLength = 6 'Cantidad de caracteres seleccionados
tuRichTextBox.SelectionFont = New Font("Arial", 12) 'Asignar fuente al texto seleccionado
tuRichTextBox.SelectionColor = Color.White 'Asignar color de fuente al texto seleccionado
tuRichTextBox.SelectionBackColor = Color.Black 'Asignar color de fondo al texto seleccionado


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Remy

Como enviar texto con color en texbox.

Publicado por Remy (22 intervenciones) el 27/09/2015 18:34:24
Bueno ya he encontrado la solución, no es que no supiera como colorear el texto, sino que no podria hacer que pasara de una caja a otra sin perder el formato...

el problema me ocurría porque no conocía la propiedad Rtf, así que para poder enviar sin perder el formato hay que valerse de ella...

1
RichTextBox2.Rtf = RichTextBox1.Rtf

Gracias miguel igual por la ayuda..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Como enviar texto con color en texbox.

Publicado por Miguel (352 intervenciones) el 27/09/2015 22:40:55
Hola, que bien que hayas resuelto eso. Si embargo, con el código "RichTextBox2.Rtf = RichTextBox1.Rtf" solamente le pasas el texto con su formato al otro control; sería como pasarle el "Font" y "ForeColor" del TextBox1 al TextBox2...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Remy

Como enviar texto con color en texbox.

Publicado por Remy (22 intervenciones) el 28/09/2015 14:28:55
Descuida Miguel, mas que seguro que fui yo el que se expreso mal jajaj perdón.

Lo que no tuve en cuenta es que puedo enviar el texto con formato de un rich a otro, pero no consigo que el texto que llega, sea reemplazado por el que va a seguir mas tarde, siempre se reemplaza y no se acumula en lineas diferentes en el rich de destino al estilo chat.

Sabes porque me sucede eso? algo estoy haciendo mal seguro...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como enviar texto con color en texbox.

Publicado por Miguel (352 intervenciones) el 28/09/2015 18:20:28
Hola, prueba con:

1
tuRichBoxTextBox2.Rtf += tuRichBoxTextBox1.Rtf

o:

1
2
3
4
5
If (tuRichBoxTextBox2.Rtf = Nothing) Then //Aquí mira si se puede igualar a Nothing, sino usa IsNothing(object)
     tuRichBoxTextBox2.Rtf = tuRichBoxTextBox1.Rtf
Else
     tuRichBoxTextBox2.Rtf = tuRichBoxTextBox2.Rtf  & tuRichBoxTextBox1.Rtf
En If



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Remy

Como enviar texto con color en texbox.

Publicado por Remy (22 intervenciones) el 29/09/2015 04:24:10
Bien antes que nada, gracias por la ayuda!

Probé eso que me enviaste pero no me funciona :(

Puedo pasar texto de un rich a otro, pero no puedo evitar que sobrescriba el texto, el texto pasa, pero se reemplaza, no una linea arriba de la otra.

Solo lo puedo lograr con el uso de AppendText() pero me imprime caracteres raros junto al texto... Te muestro como vengo con mi pequeño código!!
1
2
3
4
5
6
7
If e.KeyCode = Keys.Enter Then
         RichTextBox1.SelectAll()
         RichTextBox1.SelectionFont = New Font("Verdana", 11) 'Asignar fuente al texto seleccionado
         RichTextBox1.SelectionColor = Color.Red 'Asignar color de fuente al texto seleccionado
         RichTextBox2.AppendText(RichTextBox1.Rtf) ' // <- AQUÏ ES EL PROBLEMA, SI cambio a TEXT funciona pero sin color :/
         RichTextBox1.Clear()
      End If

Reemplazando rtf por text funciona, pero solo como texto plano...

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como enviar texto con color en texbox.

Publicado por Miguel (352 intervenciones) el 29/09/2015 09:17:44
1
2
3
4
5
6
7
8
9
10
11
Private Sub enviarRtfARichTextBox(control1 As RichTextBox, control2 As RichTextBox)
        control2.AppendText(Environment.NewLine & control1.Text)
        Dim inicioSeleccion As Integer = control2.Find(control1.Text, RichTextBoxFinds.Reverse)
        If (inicioSeleccion = -1) = False Then
            control2.SelectionStart = inicioSeleccion
            control2.SelectionLength = control1.Text.Length
            control1.SelectAll()
            control2.SelectedRtf = control1.SelectedRtf
        End If
        control1.Clear()
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Remy

Como enviar texto con color en texbox.

Publicado por Remy (22 intervenciones) el 29/09/2015 12:27:42
Bueno, al parecer tengo que estudiar bien el appendtext para entender porque a ti te funciono y a mi no jaja

Miguel, muchísimas gracias por la ayuda y quedo perfecto el código!


Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar