Ayuda con colores RichTextBox

Iniciado por Braayhaan, 3 Septiembre 2009, 02:12 AM

0 Miembros y 1 Visitante están viendo este tema.

Braayhaan

Bueno acá esto pidiendoles ayuda de nuevo xD

Necesito que en un Richtextbox se muestre el texto de distintos colores por ejemplo.

Como el GeSHi de este foro que muestra distintos colores segun el texto.

hay alguna manera de hacerlo?

Todo esto en el VB.NET Claro

Saludos!

seba123neo

Código (vbnet) [Seleccionar]
RichTextBox1.SelectionStart = RichTextBox1.Find("Palabra")
RichTextBox1.SelectionColor = Color.Yellow ' El color que quieras


La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Braayhaan

#2
Me imagino que eso va en el Rich, o quizás en un timer pero me dice error.

Me dice algo de error valuetype-1 is no correct, o algo del value-1, alguna idea?

echame una mano seba!  :xD

Braayhaan

Bueno aca les dejo el source haber si me echan una mano ya que no entendi muy bien lo que puso el seba  :-[ me da error

Código (vbnet) [Seleccionar]
Public Class Form1

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If RichTextBox1.Text = "" Then
            MessageBox.Show("No se puede compilar un texto vacio")
            Return
        End If
        If SaveFileDialog1.ShowDialog = DialogResult.OK Then
            RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)
            ProgressBar1.Visible = True
            Timer1.Start()
        End If
        Form1.ActiveForm().Text() = "Batch Creator" + SaveFileDialog1.FileName
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If OpenFileDialog1.ShowDialog = DialogResult.OK Then
            RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
        End If
        Form1.ActiveForm().Text() = "Batch Creator" + OpenFileDialog1.FileName
    End Sub

    Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        ProgressBar1.Increment(10)
        If ProgressBar1.Value = ProgressBar1.Maximum Then
            Timer1.Stop()
            MessageBox.Show("Se ha creado satisfactoriamente el archivo .bat en la direccion especificada")
            ProgressBar1.Value = ProgressBar1.Minimum
            ProgressBar1.Visible = False
            Return
        End If
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        If RichTextBox1.Text = "" Then
            MessageBox.Show("Ya hay un nuevo documento abierto")
            Return
        End If
        Form2.Show()
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Form3.SHOW()
    End Sub

    Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged

    End Sub

End Class

seba123neo

vos preguntaste como se colorea el texto, yo te respondi eso, pero despues no se que hiciste  :xD, el codigo que puse busca "Palabra" en el Richtextbox y lo colorea de amarillo. tambien podes hacerlo con SelectionStart y con SelectionLenght diciendole que desde la posicion 10 hasta la 15 sea de color rojo, de la 16 a la 20 sea azul y asi...ahi en ese codigo que pusiste no veo nada de eso. y no se donde te tira el error. igualmente yo le cambiaria varias cosas a ese codigo.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Braayhaan

Ese codigo para colorear lo puse en el richtextbox y me da error
Hay les dejo el error que me tira.



No se que es y al darle a detalles aparecen como 100 lineas con cosas raras :xD

Help me Please ;D

Braayhaan

mmm bueno hasta ahora lo resolvi Asi

Código (vbnet) [Seleccionar]
RichTextBox1.Find("@")
RichTextBox1.SelectionColor = System.Drawing.Color.Yellow


Pero a cada rato que escribo algo se me devuelve a la primera linea me imagino que por eso del .Find

Alguna forma de que lo chequee pero que me deje escribir normal?

Thanks

Zzombi

lo otro que podrias hacer es que cuando el richtextbox pierda el foco que se pinte el arroba "@" de color rojo

Código (vbnet) [Seleccionar]
Private Sub RichTextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextBox1.LostFocus
       
RichTextBox1.Find("@")
RichTextBox1.SelectionColor = Color.Red
 
End Sub

Keyen Night

Mira yo tengo la solución a ese problema xD yo tambien lo tube pero luego me dio flojera continuar un bat maker que estaba haciendo tambien; suponiendo que tu RichTextBox se llamará r así como el mio mira el evento TextChanged
Código (vb) [Seleccionar]
Private Sub r_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles r.TextChanged
        If r.Find("@echo") <> -1 Then
            r.SelectionStart = r.Find("@echo")
            r.SelectionColor = Color.Red
            r.SelectionStart = r.TextLength
        End If
    End Sub
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

Braayhaan

Keyen Night me funciono perfecto el ejemplo pero el detalle es este:

si escribo en la primera linea @ o ECHO o Off solo me marca el primer texto escrito por ejemplo si escribi @ me marca en rojo y si despues de @ escribo ECHO me sigue marcando en rojo,Cuando el codigo de ECHO Es azul y deberia marcar el @ en rojo y el ECHO en Azul.

Pero si doy enter y paso a la siguiente linea me pone el color del Richtextbox original.

Entonces haber si me ayudan  :xD