Foros del Web » Programación para mayores de 30 ;) » .NET »

Buscar y colorear frases en un RichTextBox

Estas en el tema de Buscar y colorear frases en un RichTextBox en el foro de .NET en Foros del Web. Buenas tardes compañeros mi inquietud es la siguiente: Tengo un RichTextBox el cual cual necesito recorrer para buscar determinada frase y colorear dicha frase la ...
  #1 (permalink)  
Antiguo 05/02/2010, 15:53
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Buscar y colorear frases en un RichTextBox

Buenas tardes compañeros mi inquietud es la siguiente:
Tengo un RichTextBox el cual cual necesito recorrer para buscar determinada frase y colorear dicha frase la cual puede aparecer mas de una vez en el RichTextBox. este es el código que llevo:

Código vb:
Ver original
  1. Dim resultado As String = FormatDateTime(Now, DateFormat.ShortDate)
  2.         Dim p As Integer, Frase As String
  3.         Dim m_Pos As Integer
  4.  
  5.         Frase = resultado
  6.         p = InStr(1, Me.log_read.Text, Frase)
  7.  
  8.         If p > 0 Then
  9.             m_Pos = p
  10.             With Me.log_read
  11.                 .SelectionStart = m_Pos - 1
  12.                 .SelectionLength = Len(Frase)
  13.                 .SelectionColor = Color.Blue
  14.                 .SelectionFont = New Font(FontStyle.Bold, 11, FontStyle.Bold, GraphicsUnit.Pixel)
  15.                 .Focus()
  16.             End With
  17.         Else
  18.             MsgBox("No Se Encontró La Frase", vbInformation)
  19.             Me.log_read.Focus()
  20.         End If

aunque aqui solamente me colorea la primera de frase que encuentre, la inquietud es como haría para que si encuentra la frase mas de una vez pues las coloree todas??' se que habría que recorrer el RichTextBox pero la verdad no doy pie con bola con esto.

Agradesco sus comentarios al respecto.


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #2 (permalink)  
Antiguo 08/02/2010, 09:01
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: Buscar y colorear frases en un RichTextBox

Buenos dias compañeros despues de buscar encontre esta forma para hacer lo que necesitaba:
Código vb:
Ver original
  1. Imports System.Text.RegularExpressions
  2.  
  3.     Private Sub Buscar_Coincidencia( _
  4.       ByVal pattern As String, _
  5.       ByVal RichTextBox As RichTextBox, _
  6.       ByVal cColor As Color, _
  7.      ByVal BackColor As Color)
  8.  
  9.  
  10.         Dim Resultados As MatchCollection
  11.         Dim Palabra As Match
  12.  
  13.         Try
  14.             Dim obj_Expresion As New Regex(pattern.ToString, RegexOptions.IgnoreCase)
  15.             Resultados = obj_Expresion.Matches(RichTextBox.Text)
  16.  
  17.             With RichTextBox
  18.                 .SelectAll()
  19.                 .SelectionColor = Color.Black
  20.             End With
  21.  
  22.             For Each Palabra In Resultados
  23.                 With RichTextBox
  24.                     .SelectionStart = Palabra.Index
  25.                     .SelectionLength = Palabra.Length
  26.                     .SelectionColor = cColor
  27.                     .SelectionBackColor = BackColor
  28.                     .SelectionFont = New Font(FontStyle.Bold, 11, FontStyle.Bold, GraphicsUnit.Pixel)
  29.                     Debug.Print(Palabra.Value)
  30.                 End With
  31.             Next Palabra
  32.         Catch ex As Exception
  33.             MsgBox(ex.Message.ToString)
  34.         End Try
  35.     End Sub
  36.  
  37. 'Para utilizarlo
  38. Call Buscar_Coincidencia(resultado, Me.log_read, Color.Blue, Color.Yellow
)


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"

Etiquetas: colorear, frases, 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 10:00.