PESQUISA EM LISTVIEW
Existe alguma forma de implementar uma pesquisa no listview ?
da seguinte forma:
Quanto estou digitando em um textbox já vai carregando o listview, ou seja, pesquisa letra a letra. Conforme vou digitando ele vai pesquisando.
Tenho esta função em um datagridview, mas não estou conseguindo fazer no listview.
Citação:Private Sub ProcurarItem()
Chave = [Ô][Ô]
Chave = [Ô]%[Ô] & TxtPesquisar.Text
If TxtPesquisar.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Por Favor, Preencha o Campo Pesquisar![Ô], [Ô]..::Erro::..[Ô], MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
TxtPesquisar.Focus()
Exit Sub
End If
If TxtPesquisar.Text <> [Ô][Ô] And ListClientes.Items.Count > 0 Then
Dim lvItem As ListViewItem = ListClientes.FindItemWithText(TxtPesquisar.Text, False, 0, True)
ListClientes.Clear()
If (lvItem IsNot Nothing) Then
Try
FechaBanco()
[ô]Abre o Banco
AbreMySqlPrincipal()
OleCl = New MySqlCommand([Ô]SELECT * FROM Clientes Where Nome Like [ô][Ô] & Chave & [Ô]%[ô] ORDER BY Nome[Ô], AbreBanco)
Dim leitor As MySqlDataReader = OleCl.ExecuteReader
With ListClientes
[ô]Criando as Colunas
ListClientes.Columns.Add([Ô]Nome[Ô], 350, HorizontalAlignment.Left)
ListClientes.Columns.Add([Ô]Fone Fixo[Ô], 150, HorizontalAlignment.Center)
ListClientes.Columns.Add([Ô]Fone Comercial[Ô], 150, HorizontalAlignment.Center)
ListClientes.Columns.Add([Ô]Celular[Ô], 150, HorizontalAlignment.Center)
ListClientes.Columns.Add([Ô]Cidade[Ô], 300, HorizontalAlignment.Left)
ListClientes.Columns.Add([Ô]Codigo[Ô], 100, HorizontalAlignment.Right)
End With
Do While leitor.Read
Dim codigo1 As String = leitor.Item([Ô]NOME[Ô])
Dim ls As New ListViewItem(codigo1, 0)
ls.SubItems.Add(leitor.Item([Ô]FONE_FIXO[Ô]))
ls.SubItems.Add(leitor.Item([Ô]FONE_COMERCIAL[Ô]))
ls.SubItems.Add(leitor.Item([Ô]FONE_CELULAR[Ô]))
ls.SubItems.Add(leitor.Item([Ô]CIDADE[Ô]))
ls.SubItems.Add(leitor.Item([Ô]IDCLIENTE[Ô]))
ListClientes.Items.Add(ls)
pZebra(ListClientes, Color.Black, Color.WhiteSmoke) [ô]Rotina para zebrar ListView
Loop
leitor.Close()
Catch ex As SqlException
MessageBox.Show(ex.Message)
Finally
FechaMySql()
End Try
End If
Else
Try
FechaBanco()
[ô]Abre o Banco
AbreMySqlPrincipal()
OleCl = New MySqlCommand([Ô]SELECT * FROM Clientes Where Nome Like [ô][Ô] & Chave & [Ô]%[ô] ORDER BY Nome[Ô], AbreBanco)
Dim leitor As MySqlDataReader = OleCl.ExecuteReader
With ListClientes
[ô]Criando as Colunas
ListClientes.Columns.Add([Ô]Nome[Ô], 250, HorizontalAlignment.Left)
ListClientes.Columns.Add([Ô]Fone Fixo[Ô], 100, HorizontalAlignment.Center)
ListClientes.Columns.Add([Ô]Fone Comercial[Ô], 100, HorizontalAlignment.Center)
ListClientes.Columns.Add([Ô]Celular[Ô], 100, HorizontalAlignment.Center)
ListClientes.Columns.Add([Ô]Cidade[Ô], 300, HorizontalAlignment.Left)
ListClientes.Columns.Add([Ô]Codigo[Ô], 100, HorizontalAlignment.Right)
End With
Do While leitor.Read
Dim codigo2 As String = leitor.Item(0)
Dim ls As New ListViewItem(codigo2, 0)
ls.SubItems.Add(leitor.Item(5))
ls.SubItems.Add(leitor.Item(6))
ls.SubItems.Add(leitor.Item(7))
ls.SubItems.Add(leitor.Item(17))
ls.SubItems.Add(leitor.Item(21))
ListClientes.Items.Add(ls)
pZebra(ListClientes, Color.Black, Color.WhiteSmoke) [ô]Rotina para zebrar ListView
Loop
leitor.Close()
Catch ex As SqlException
MessageBox.Show(ex.Message)
Finally
FechaMySql()
End Try
End If
End Sub
Depois coloque essa rotina no evento changed do text de pesquisa:
Citação:ListClientes.Clear()
ProcurarItem()
Fiz algumas alterações e funcionou perfeitamente.