
13/09/2009, 03:44
|
 | | | Fecha de Ingreso: julio-2006 Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 8 meses Puntos: 29 | |
Respuesta: Como saber cuando se paso por un salto de linea RichTextBox? Es que el tercer parametro es la palabra a buscar, no la posicion.
Lo voy a hacer en una sub a ver si así lo entiendes y te sirve:
(Supongo que tendrás puesto el RichTextBox.HideSelection = False para que no se deje de ver lo selecionado cuando el texto pierde el foco)
La Sub se usaría así:
BuscaTexto "Linea 3", RichTextBox1
' el texto buscado / el textbox donde buscar
Private Sub BuscaTexto(ByVal TextoABuscar As String, TextBox As RichTextBox)
Dim PosicionTexto As Double
' El fallo que tiene esta sub es que si quieres seleccionar la primera palabra del texto, no lo hace.
' Por eso añado esto al comienzo por si acaso:
If TextBox.SelStart = 0 And Left$(TextBox.Text, Len(TextoABuscar)) = TextoABuscar Then
TextBox.SelLength = Len(TextoABuscar)
'seleccionamos el texto y salimos
Exit Sub
End If
' Buscamos a partir del cursor.
' En efecto, esta línea siempre encontraba el mismo texto
'PosicionTexto = InStr(TextBox.SelStart + 1, TextBox.Text, TextoABuscar)
' Ahora buscamos a partir del final de lo seleccionado
PosicionTexto = InStr(TextBox.SelStart + TextBox.SelLength + 1, TextBox.Text, TextoABuscar)
'Esto devuelve la posicion de la letra "L" de "Linea 3"
If PosicionTexto > 0 Then
TextBox.SelStart = PosicionTexto - 1
TextBox.SelLength = Len(TextoABuscar)
End If
'Seleccionamos el texto encontrado
End Sub
Al haber selecionado el texto, si volvemos a ejecutar la sub:
BuscaTexto "Linea 3", RichTextBox1
seleccionara el siguiente "Linea 3", y así hasta el final
Para comenzar una nueva búsqueda solo tendrás que asegurarte de poner:
RichTextBox1.Selstart = 0
Una cosa a tener en cuenta es que la búsqueda es sensible a mayúsculas/minúsculas, de modo que si buscas "Pepito" y existe "pepito", este se pasará por alto y se buscará el siguiente "Pepito".
Por cierto, había olvidado .SelText
El otro día queríamos extraer el texto que habíamos seleccionado y no me acordé que así te lo dá. Que mala cabeza.
Suerte con ello.
Última edición por pkj; 13/09/2009 a las 09:10 |