• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Tiago fernando

Procura

16 mensagens neste tópico

Ola pessoal

Venho pedir a vossa ajuda

no foram deram-me este código para realizar buscas

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

        'Dar a posiçao na lista

        Dim i As Integer = ListBox1.FindString(TextBox1.Text)

        'Seleccionar o que é parecido
        ListBox1.SelectedIndex = i
    End Sub

Mas quando ele nao encontra a palavra que digitei da erro e eu tenho de fechar o programa e abrir de novo, alguem me pode ajudar a resolver isso?

:eek:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem ja nao mexo em vb.net ha muito tempo mas se queres 'apanhar' o erro basta fazeres um 'try catch'...

Try
   'CÓDIGO
Catch ex as exception
   messagebox.show(ex)
End Try

Quanto ao teu código...

Se queres saber se o texto da textbox existe na lista acho que havia algo que era "list1.contains()".

Assim podes fazer algo do tipo:

If list1.contains(textbox1.text) then
  'código
else
  'nao existe
end if

Assim podes verificar se existe antes de tentares aceder à posição...que deve ser daí que vem o erro.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso iria resolver um dos problemas que era o erro que dá qdo não encontra a palavra.

Mas eu queria que ele procura-se uma palavra no texto. Por exemplo se eu tiver um titulo que diz "Olá mundo" com esse código ele so encontra este titulo se eu escrever "olá" e o que eu queria era que por exemplo se eu escrevesse "mundo" ele iria encontrar na mesma a palavra, o que não acontece com esse código

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao tens uma propriedade que é "texbox1.text.contains" ou "texbox1.text.exists" ?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não Buttpt, o meu código é apenas esse, eu  não percebo quase nada de vb-net

estou a aprender sozinho por isso tenho pedido ajuda aqui no forum para ver se alguém me ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que o teu problema está aqui:

Dim i As Integer = ListBox1.FindString(TextBox1.Text)

No caso de ele não encontrar a tua string (TextBox1.Text) ele vai devolver -1, i.e., i = -1

De seguida fazes a atribuição

ListBox1.SelectedIndex = i

o mesmo que

ListBox1.SelectedIndex = -1

Penso que por esta razão ele dá o problema. Não existem índices negativos! Fica a minha ideia! A solução passa pelo try-catch ou, enventualmente pelo seguinte

If Not (ListBox1.FindString(TextBox1.Text) <0 ) then
' código aqui
End If

Espero ter ajudado! 1Abraço!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso iria resolver um dos problemas que era o erro que dá qdo não encontra a palavra.

Mas eu queria que ele procura-se uma palavra no texto. Por exemplo se eu tiver um titulo que diz "Olá mundo" com esse código ele so encontra este titulo se eu escrever "olá" e o que eu queria era que por exemplo se eu escrevesse "mundo" ele iria encontrar na mesma a palavra, o que não acontece com esse código

:thumbsup:

Aqui tens...

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

        For n = 0 To ListBox1.Items.Count
            Dim itemASstring As String = ListBox1.Items.Item(n).ToString
            If itemASstring.Contains(TextBox1.Text) Then
                ListBox1.SelectedIndex = n
                Exit For
            End If
        Next

End Sub

O que eu estou a fazer é converter item a item para uma string. Depois verifico se essa string contem o texto digitado, e se assim for selecciono esse item na Listbox1.

Agora o que eu te aconselho é a meteres isso num button click event, tipo "Procurar", porque assim, sempre que começas a escrever ele começa a fazer o for, e se tiveres muitos items é capaz de não ser aconselhavel.

Espero que ajude. Se não perceberes alguma coisa diz.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ola pessoal eu tive uns tempos fora e só agora estou a voltar a programar.

Buttpt eu esprimentei o teu codigo mas falta-me declarar a  variavél n, ja tentei mas da-me sempre erro, não sei como o fazer.

Penso que é a variavél n que falta ser declarada como já disse eu estou a aprender a programar e nos ultimos tempos não tenho tido o tempo que eu desejaria ter para me dedicar ao VB net

Me ajudem ainda nao consegui resolver este problema

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ola pessoal eu tive uns tempos fora e só agora estou a voltar a programar.

Buttpt eu esprimentei o teu codigo mas falta-me declarar a  variavél n, ja tentei mas da-me sempre erro, não sei como o fazer.

Penso que é a variavél n que falta ser declarada como já disse eu estou a aprender a programar e nos ultimos tempos não tenho tido o tempo que eu desejaria ter para me dedicar ao VB net

Me ajudem ainda nao consegui resolver este problema

Entao mas experimentas-te declara-la?

Estas a usar essa variavel mais alguma vez nessa funçao?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tentei declarar ela mas nao da

e não nao estou a declarar ela mais de uma vez pelo menos acho que não.

Eu acho que sou eu que estou a declarar ela mal não sei.

como tu declaraste ela?

Eu sou principiante, pode ser um erro basico, mas ainda falta-me aprender muito

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nao declarei.

Supostamente declara-se sozinha...mas ja nao me lembro bem.

Saca este projecto e ve o meu exemplo.

Dowload Project (59kb .rar file)

Cumps

Edit: Atençao que o codigo nao esta feito de modo a que nao haja o item pretendido, pelo que dará erro se procurares algo que nao existe. Para corrigir isso basta usares um if ou try/catch.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

naõ sei porque mas não esta a funcionar,sera que é por usar o vb net express?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tambem uso vb express. A tua versao é a 2008?

Comigo funciona bem...e so usei 1 ou 2 controls...mais nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a minha versão é a 2005, mas é engraçado que ele pede-me para declarar a variavél n e eu não a consigo declarar de jeito nenhum :eek:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Buttpt obrigado pela paciencia e ajuda

coloquei o vb net 2008 para download mal acabe, vou exprimentar o código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora