none
Buscar RRS feed

  • Pregunta

  • Hola buenas es posible hacer busquedas en textbox y richtextbox...

    Lo que quiero es buscar, buscar siguiente al presionar button1 y button2 atras.

    lo que deseo hacer es como el de bloc de notas de window

    gracias

    lunes, 20 de julio de 2015 16:22

Respuestas

  • Para buscar el texto en mayúsculas:

    Dim textoABuscar As String = txtBuscar.Text.ToUpper()

    Para buscar el texto en minúsculas:

    Dim textoABuscar As String = txtBuscar.Text.ToLower()

    Para buscar el texto ignorando mayúsculas y minúsculas:

    Dim posicionTexto As Integer = txtContenido.Text.IndexOf(textoABuscar, posicionActual, StringComparison.OrdinalIgnoreCase)
    
    posicionTexto = txtContenido.Text.IndexOf(textoABuscar, StringComparison.OrdinalIgnoreCase)
    
    posicionTexto = txtContenido.Text.LastIndexOf(textoABuscar, posicionActual, StringComparison.OrdinalIgnoreCase)
    
    posicionTexto = txtContenido.Text.LastIndexOf(textoABuscar StringComparison.OrdinalIgnoreCase)


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...


    martes, 21 de julio de 2015 18:56
  • Lo puedes hacer a mano con pocas líneas de código. Simplemente copia el texto del textbox a un string, y usa el IndexOf para buscar el texto:

    Dim texto as String = textbox1.Text

    Dim posición as Integer = texto.IndexOf("texto a buscar", posicionInicial)

    Si no lo encuentra devuelve -1 en la variable posicion.

    PosicionInicial es cero la primera vez. Cuando pulses "siguiente", le pasas ahí el valor que encontraste la ñultima vez en "posicion". Cuando pulses "anterior", le pasas ahí el último valor que usaste la vez anterior para "posicionInicial".

    Para resaltar el texto encontrado en el textbox, usas textbox1.SelectionStart=posicion y texbox1.SelectionLength="texto a buscar".Length.

    lunes, 20 de julio de 2015 16:53
  • Aquí tienes un ejemplo utilizando IndexOf para la búsqueda hacia adelante y LastIndexOf para la búsqueda hacia atrás:

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim textoABuscar As String = txtBuscar.Text
            If Not String.IsNullOrEmpty(textoABuscar) Then
                Dim posicionActual As Integer = txtContenido.SelectionStart + txtContenido.SelectionLength
                Dim posicionTexto As Integer = txtContenido.Text.IndexOf(textoABuscar, posicionActual)
                If posicionTexto < 0 Then
                    posicionTexto = txtContenido.Text.IndexOf(textoABuscar)
                End If
                If posicionTexto > 0 Then
                    txtContenido.SelectionStart = posicionTexto
                    txtContenido.SelectionLength = textoABuscar.Length
                    txtContenido.Focus()
                Else
                    MessageBox.Show(String.Format("No se ha encontrado el texto {0}", textoABuscar))
                End If
            End If
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Dim textoABuscar As String = txtBuscar.Text
            If Not String.IsNullOrEmpty(textoABuscar) Then
                Dim posicionActual As Integer = txtContenido.SelectionStart
                Dim posicionTexto As Integer = -1
                If posicionActual > 0 Then
                    posicionTexto = txtContenido.Text.LastIndexOf(textoABuscar, posicionActual)
                End If
                If posicionTexto < 0 Then
                    posicionTexto = txtContenido.Text.LastIndexOf(textoABuscar)
                End If
                If posicionTexto > 0 Then
                    txtContenido.SelectionStart = posicionTexto
                    txtContenido.SelectionLength = textoABuscar.Length
                    txtContenido.Focus()
                Else
                    MessageBox.Show(String.Format("No se ha encontrado el texto {0}", textoABuscar))
                End If
            End If
        End Sub
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    lunes, 20 de julio de 2015 17:21

Todas las respuestas

  • Lo puedes hacer a mano con pocas líneas de código. Simplemente copia el texto del textbox a un string, y usa el IndexOf para buscar el texto:

    Dim texto as String = textbox1.Text

    Dim posición as Integer = texto.IndexOf("texto a buscar", posicionInicial)

    Si no lo encuentra devuelve -1 en la variable posicion.

    PosicionInicial es cero la primera vez. Cuando pulses "siguiente", le pasas ahí el valor que encontraste la ñultima vez en "posicion". Cuando pulses "anterior", le pasas ahí el último valor que usaste la vez anterior para "posicionInicial".

    Para resaltar el texto encontrado en el textbox, usas textbox1.SelectionStart=posicion y texbox1.SelectionLength="texto a buscar".Length.

    lunes, 20 de julio de 2015 16:53
  • Saludos:

    Si es posible. Lo que yo haria es crear un arreglo de controles y despues acceder a la propiedad Text de cada uno, buscando el valor dado. Mira este link:

    http://www.canalvisualbasic.net/foro/visual-basic-net/recorrer-los-textbox-de-un-form-y-acceder-una-propiedad-que-se-le-ha-agregado-13997/

    Espero ayude.

    JOSE LUIS


    Dios NO los llamo LAS DIEZ RECOMENDACIONES

    lunes, 20 de julio de 2015 16:53
  • Podrias subir un ejemplo en code completo

     xfa

    lunes, 20 de julio de 2015 17:07
  • Aquí tienes un ejemplo utilizando IndexOf para la búsqueda hacia adelante y LastIndexOf para la búsqueda hacia atrás:

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim textoABuscar As String = txtBuscar.Text
            If Not String.IsNullOrEmpty(textoABuscar) Then
                Dim posicionActual As Integer = txtContenido.SelectionStart + txtContenido.SelectionLength
                Dim posicionTexto As Integer = txtContenido.Text.IndexOf(textoABuscar, posicionActual)
                If posicionTexto < 0 Then
                    posicionTexto = txtContenido.Text.IndexOf(textoABuscar)
                End If
                If posicionTexto > 0 Then
                    txtContenido.SelectionStart = posicionTexto
                    txtContenido.SelectionLength = textoABuscar.Length
                    txtContenido.Focus()
                Else
                    MessageBox.Show(String.Format("No se ha encontrado el texto {0}", textoABuscar))
                End If
            End If
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Dim textoABuscar As String = txtBuscar.Text
            If Not String.IsNullOrEmpty(textoABuscar) Then
                Dim posicionActual As Integer = txtContenido.SelectionStart
                Dim posicionTexto As Integer = -1
                If posicionActual > 0 Then
                    posicionTexto = txtContenido.Text.LastIndexOf(textoABuscar, posicionActual)
                End If
                If posicionTexto < 0 Then
                    posicionTexto = txtContenido.Text.LastIndexOf(textoABuscar)
                End If
                If posicionTexto > 0 Then
                    txtContenido.SelectionStart = posicionTexto
                    txtContenido.SelectionLength = textoABuscar.Length
                    txtContenido.Focus()
                Else
                    MessageBox.Show(String.Format("No se ha encontrado el texto {0}", textoABuscar))
                End If
            End If
        End Sub
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    lunes, 20 de julio de 2015 17:21
  • Gracias

    probare el code a ver  si me funciona

    luego te lo hago saber

    lunes, 20 de julio de 2015 17:24
  • buenas asier

    como puedo buscar que solo sean mayúsculas o minusculas

    lo que quiero es agregar un checkbox1 mas,  cuando es chekeado me busque solo mayúsculas  sino minúsculas.

    como controlo eso....


    • Editado Neimar_2015 martes, 21 de julio de 2015 16:40
    martes, 21 de julio de 2015 16:39
  • Para buscar el texto en mayúsculas:

    Dim textoABuscar As String = txtBuscar.Text.ToUpper()

    Para buscar el texto en minúsculas:

    Dim textoABuscar As String = txtBuscar.Text.ToLower()

    Para buscar el texto ignorando mayúsculas y minúsculas:

    Dim posicionTexto As Integer = txtContenido.Text.IndexOf(textoABuscar, posicionActual, StringComparison.OrdinalIgnoreCase)
    
    posicionTexto = txtContenido.Text.IndexOf(textoABuscar, StringComparison.OrdinalIgnoreCase)
    
    posicionTexto = txtContenido.Text.LastIndexOf(textoABuscar, posicionActual, StringComparison.OrdinalIgnoreCase)
    
    posicionTexto = txtContenido.Text.LastIndexOf(textoABuscar StringComparison.OrdinalIgnoreCase)


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...


    martes, 21 de julio de 2015 18:56