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

gabrielsoliguetti

Auto selecionar no ListVIEW

Recommended Posts

gabrielsoliguetti

Olá, sou um novo brasileiro registrado no fórum de tirar uma grande dúvida com vocês.

Tenho este "form" aqui, e gostaria de perguntar a vocês como fazer uma pesquisa dinâmica na ListView. Uma pesquisa dinâmica é quando você está escrevendo em uma TextBox e automaticamente. conforme você vai escrevendo, o item vai aparecendo na ListView. Por exemplo, você tem no ListBox os seguintes itens:

Maçã

Pera

Melancia

Mamão

A medida que for escrevendo, por exemplo, "M", aparecerá na ListView as palavras que começam com a letra "M", depois você digita o "A", ficando "Ma", logo, ele retorna os resultados na ListView, apenas com os dados "Maçã e Mamão". Mas quando tudo for apagado da TextBox, os dados da ListView reaparecem todos.

Mas se isso não for possível, gostaria que me ajudassem que o ListView procurasse e selecionasse o item correspondente, mas na qual, na TextBox, eu poderia digitar qualquer parte da palavra.Obrigado, aguardo respostas.

capturarzzc.png

Caso vocês forem criar um código, a TextBox se chama "procurar_pasta" e a ListView se chama "ListView2".

Edited by gabrielsoliguetti

Share this post


Link to post
Share on other sites
acao

boas

essa situação é feita na consulta que carrega a lisbox, acionada num evento change.

exemplo numa basedados access:

Dim queryPesqCadTel As String = "SELECT ListaTelefonica.NumTelfone,ListaTelefonica.IDColaborador, Colaboradores.Nome FROM ListaTelefonica Left  JOIN " & _
		    "Colaboradores On ListaTelefonica.IDColaborador = Colaboradores.IDColaborador Where Nome Like '%" & txtNome.Text.Replace(" ", "%") & "%' ORDER BY Colaboradores.Nome; "

cumps

acao

Share this post


Link to post
Share on other sites
gabrielsoliguetti

boas

essa situação é feita na consulta que carrega a lisbox, acionada num evento change.

exemplo numa basedados access:

Dim queryPesqCadTel As String = "SELECT ListaTelefonica.NumTelfone,ListaTelefonica.IDColaborador, Colaboradores.Nome FROM ListaTelefonica Left  JOIN " & _
			"Colaboradores On ListaTelefonica.IDColaborador = Colaboradores.IDColaborador Where Nome Like '%" & txtNome.Text.Replace(" ", "%") & "%' ORDER BY Colaboradores.Nome; "

cumps

acao

Não foi útil, pois não atendeu aos meus requisitos. O que realmente quero é que, a partir de um textbox, eu digite algo e ele procure o que digitei no textbox em uma LISTVIEW. E não estou usando banco de dados, mesmo porque estou a trabalhar com directórios.

Share this post


Link to post
Share on other sites
Nelson Sousa

Olá,

No vb.net você pode usar o evento KEYUP da textbox pra chamar a rotina de carga de sua listbox.


Um Abraço,

Nelson Sousa

Share this post


Link to post
Share on other sites
gabrielsoliguetti

Olá,

No vb.net você pode usar o evento KEYUP da textbox pra chamar a rotina de carga de sua listbox.

Mas você poderia me ajudar nisso, pois sou muito, mas muito novato mesmo no VB.NET

Share this post


Link to post
Share on other sites
acao

boas

um pequeno exemplo, carregue a listbox conforme desejar, com arrays etc.

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged 
ListBox1.Items.Clear()
if Trim(TextBox1.Text) = "" Then Exit Sub
 Dim val1 As String
 val1 = "maça Pessego"
 If val1.ToUpper Like TextBox1.Text.ToUpper.Replace(" ", "*") & "*" Then
	 ListBox1.Items.Add(val1.ToString)
 End If
End Sub

cumps

acao

Edited by acao

Share this post


Link to post
Share on other sites
gabrielsoliguetti

boas

um pequeno exemplo, carregue a listbox conforme desejar, com arrays etc.

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
ListBox1.Items.Clear()
if Trim(TextBox1.Text) = "" Then Exit Sub
 Dim val1 As String
 val1 = "maça Pessego"
 If val1.ToUpper Like TextBox1.Text.ToUpper.Replace(" ", "*") & "*" Then
	 ListBox1.Items.Add(val1.ToString)
 End If
End Sub

cumps

acao

Infelizmente eu não consegui... quando estou a digitar algo na TextBox, ele escreve na ListView também...

Share this post


Link to post
Share on other sites
acao

Infelizmente eu não consegui... quando estou a digitar algo na TextBox, ele escreve na ListView também...

boas

sim escreve, para ver o funcionamento deste exemplo é só adicionar ao form uma caixa de texto com o nome textbox1 e uma listbox com o nome listbox1 e copiar o cod para o evento change da textbox, e correr o programa.

o valor a pesquisar é: «maça pêssego».

que é o valor adicionado à variável Val1.

isto é apenas um exemplo, provavelmente você necessita de um array aonde vai la colocar os valores que necessita na listbox para depois adicionar/carregar á listbox com os parâmetros que introduzir na textbox, conforme eu faço no if e com o array terá que ser um ciclofor a percorrer o índice.

cumps

acao

Edited by acao

Share this post


Link to post
Share on other sites
Nelson Sousa

Olá,

Digamos que você carregue sua listbox numa sub chamada CarregaList(), eu estou supondo isso.

Então o evento KeyUP de sua TextBox utilizada como filtro deverá conter:

Private Sub NomeSuaText_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtNomeSuaText.KeyUp
 CarregaList()
    'Ou então coloque aqui todo o procedimento de carga da listbox
End Sub

Edited by Nelson Sousa

Um Abraço,

Nelson Sousa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.