Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

gabrielsoliguetti

Auto selecionar no ListVIEW

Mensagens Recomendadas

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".

Editado por gabrielsoliguetti

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Editado por Nelson Sousa

Um Abraço,

Nelson Sousa

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.