Usuário com melhor resposta
(HELP) Buscar uma palavra em um TextBox VB.NET

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).
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
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!
-
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
-
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
-
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