none
(HELP) Buscar uma palavra em um TextBox VB.NET RRS feed

  • Pergunta

  • Olá , preciso encontra uma palavra digitada em um textbox e achar em outro textbox ...

    Tenho um codigo que faz isso mais ele pesquisa em um RichtextBox oque você digita em um textbox ...

    E no caso não é isso que eu quero , quero pesquisar uma palavra em um campo de textbox para achar em outro campo ..

     Private Sub BtnLocalizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLocalizar.Click
            Dim position As Integer
            Dim length As Integer
            Dim text As String
            Dim textFind As String
    
            text = TextBox1.Text
            textFind = TxtPesquisa.Text
            position = text.IndexOf(textFind)
            length = textFind.Length
            If position > -1 Then
                TextBox1.Select(position, length)
                TextBox1.Focus()
            Else
                TextBox1.BackColor = Color.OrangeRed
                MessageBox.Show("O texto não foi encontrado") 'mensagem a ser exibida caso o texto solicitado não seja encontrado
                MsgBox("Tente novamente incluindo letra maiuscula em inicio de frase e palavra com nome proprio") 'mensagem de ajuda
                TextBox1.BackColor = Color.White
            End If
        End Sub

    Desde já agradeço ... (Obs : Queria que ele além de achar a palavra , selecionasse ela).

    quinta-feira, 10 de julho de 2014 00:23

Respostas

  • Isso talvez porque byte é uma variável pequena.... altera para long ou double.... isso se a quantidade de caracteres for o problema.....

    altera...

    Dim bytInicio as byte

    para

    Dim lngInicio as Long  ou  Dim dblInicio as Double

    vi também que quando não existe o texto gera erro também.... altera para a seguinte forma....

            Dim bytInicio As Byte
            Dim bytTamanho As Byte
    
            bytInicio = InStr(txtFrase.Text, txtPesquisa.Text)
    
            If bytInicio > 0 Then
                txtFrase.Select(bytInicio - 1, txtPesquisa.TextLength)
            End If

    • Editado 'Natan Silva sexta-feira, 11 de julho de 2014 11:32
    • Marcado como Resposta Felipe Crispin sexta-feira, 11 de julho de 2014 22:31
    sexta-feira, 11 de julho de 2014 10:25

Todas as Respostas

  • Felipe,

    de uma maneira bem simples eu fiz assim... testa e ver se é isso que você quer.

            Dim bytInicio As Byte
            Dim bytTamanho As Byte
    
            bytInicio = InStr(txtFrase.Text, txtPesquisa.Text) - 1
    
            If bytInicio > 0 Then
                txtFrase.Select(bytInicio, txtPesquisa.TextLength)
            End If

    Se ajudei, não esqueça de marcar como resposta!

    quinta-feira, 10 de julho de 2014 11:40
  • Não funcionou , deu um erro "Operação Aritmetica resultou em um estouro"
       Dim bytInicio As Byte
            Try
                bytInicio = InStr(TxtTexto.Text, TxtPesquisa.Text) - 1
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    
    
            If bytInicio > 0 Then
                TxtTexto.Select(bytInicio, TxtPesquisa.TextLength)
            End If

    quinta-feira, 10 de julho de 2014 22:02
  • Isso talvez porque byte é uma variável pequena.... altera para long ou double.... isso se a quantidade de caracteres for o problema.....

    altera...

    Dim bytInicio as byte

    para

    Dim lngInicio as Long  ou  Dim dblInicio as Double

    vi também que quando não existe o texto gera erro também.... altera para a seguinte forma....

            Dim bytInicio As Byte
            Dim bytTamanho As Byte
    
            bytInicio = InStr(txtFrase.Text, txtPesquisa.Text)
    
            If bytInicio > 0 Then
                txtFrase.Select(bytInicio - 1, txtPesquisa.TextLength)
            End If

    • Editado 'Natan Silva sexta-feira, 11 de julho de 2014 11:32
    • Marcado como Resposta Felipe Crispin sexta-feira, 11 de julho de 2014 22:31
    sexta-feira, 11 de julho de 2014 10:25
  • Olá , fiz algumas alterações no codigo para que o scroll do textbox fosse até a palavra pesquisada ,

    Muito Obrigado pois funcionou e perfeitamente , vou deixar o codigo abaixo já resolvido para que possa ajudar outras pessoas ...

            Dim lngInicio As Long
    
            lngInicio = InStr(TxtTexto.Text, TxtPesquisa.Text)
    
            If lngInicio > -1 Then
                TxtTexto.Select(lngInicio - 1, TxtPesquisa.TextLength)
                TxtTexto.Focus()
                TxtTexto.ScrollToCaret()
            End If

    Obrigado Natan :)

    • Sugerido como Resposta João Paulo [] quinta-feira, 12 de março de 2015 20:44
    sexta-feira, 11 de julho de 2014 22:31