gabrielsoliguetti Posted April 6, 2013 at 03:35 PM Report #501966 Posted April 6, 2013 at 03:35 PM 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. http://img94.imageshack.us/img94/782/capturarzzc.png Caso vocês forem criar um código, a TextBox se chama "procurar_pasta" e a ListView se chama "ListView2".
acao Posted April 6, 2013 at 08:09 PM Report #502002 Posted April 6, 2013 at 08:09 PM 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
gabrielsoliguetti Posted April 6, 2013 at 09:59 PM Author Report #502004 Posted April 6, 2013 at 09:59 PM 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.
Nelson Sousa Posted April 6, 2013 at 10:02 PM Report #502005 Posted April 6, 2013 at 10:02 PM 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
gabrielsoliguetti Posted April 7, 2013 at 11:03 AM Author Report #502022 Posted April 7, 2013 at 11:03 AM 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
acao Posted April 7, 2013 at 10:01 PM Report #502065 Posted April 7, 2013 at 10:01 PM (edited) 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 April 7, 2013 at 10:06 PM by acao
gabrielsoliguetti Posted April 11, 2013 at 01:34 PM Author Report #502800 Posted April 11, 2013 at 01:34 PM 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...
acao Posted April 11, 2013 at 05:50 PM Report #502852 Posted April 11, 2013 at 05:50 PM (edited) 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 April 11, 2013 at 05:57 PM by acao
Nelson Sousa Posted April 12, 2013 at 12:44 PM Report #502950 Posted April 12, 2013 at 12:44 PM (edited) 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 April 12, 2013 at 12:45 PM by Nelson Sousa Um Abraço, Nelson Sousa
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now