Neste artigo estarei mostrando como fazer pesquisas nesta ferramenta, atravez de uma textbox, sem a necessidade de um button para dar o comando e sim o evente de texto editado(text changed).
Vamos ao trabalho:
Inicie o visual studio 2005, ou a versão express da mesma;
Crie um novo projeto visual basic windows application com o nome: PesquisaGridView;(figura1)
Figura1
Formate o Form1 de acordo com a figura2;(na figura2 estão listados os nomes de cada controle)
Figura2
Clique 2x no formulário para que abra a página de código e o evento form1_load, para quando o formulário for carregado seja executado o código abaixo:
Private
Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.dgvClientes.Rows.Add("Danillo Barros", "Cuiabá", "3626-2626")
Me.dgvClientes.Rows.Add("Danilo Barros", "Cuiabá", "3626-2626")
Me.dgvClientes.Rows.Add("João Pereira", "Brasília", "3253-7878")
Me.dgvClientes.Rows.Add("Jorge Meneguel", "Curitiba", "3626-2626")
Me.dgvClientes.Rows.Add("Miguel Cristiano", "São Paulo", "3100-3050")
Me.dgvClientes.Rows.Add("Mike Souza", "Campo Grande", "3626-2626")
Me.dgvClientes.Rows.Add("Rodrigo Carlos", "Rio de Janeiro", "3874-9898")
Me.dgvClientes.Rows.Add("Eduardo Costa", "Palmas", "3232-5555")
Estou adicionando dados em nosso grid, simulando uma pesquisa em um banco de dados, nada impede que você faça o teste com dados de uma tabela. Salve e de um build na aplicação, rode e teste a mesma para ver se os dados foram adicionados no grid. Bom, agora vamos a finalidade deste artigo, no evento textchanged do txtpesquisa adicione o código abaixo, que esta totalmente comentado:
Private Sub txtPesquisa_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlestxtPesquisa.TextChangedtexto que representará o valor da célula do gridDim txt As String = Nothingpercorre linha por linha da grid For Each row As DataGridViewRow In dgvClientes.Rows percorre cada celula da linha For Each cell As DataGridViewCell In dgvClientes.Rows(row.Index).Cells se a caixa de texto nao estiver vazia prossegue, caso não tira a seleção da linha do grid If txtPesquisa.Text <> "" Then se for a primeira coluna, no caso a coluna Nome If cell.ColumnIndex = 0 Then atribui a valor a variavel txt, passando tudo convertido para minusculotxt = cell.Value.ToString.ToLowerse essa variavel tiver caracteres que corresponde ao da pesquisa no texto, tambem convertido para o minusculo If txt.Contains(txtPesquisa.Text.ToLower) Then faz o teste para ver se o valor da celula comeca com o mesmo valor da pesquisa, caso sim, seleciona a linha do grid If txt.StartsWith(txtPesquisa.Text.ToLower.Substring(0, txtPesquisa.Text.Length)) Then Me.dgvClientes.Rows(cell.RowIndex).Selected = True End If End If End If Else Me.dgvClientes.Rows(cell.RowIndex).Selected = False End If Next Next End Sub
Salve o projeto, compile e execute o programa, altere o texto de pesquisa e veja que conforme muda o texto, no gridview é selecionado a linha que mais coincide com o texto. É isso ai, espero que tenham gostado desse artigo, apesar de pequeno é muito útil. Muito obrigado e até a próxima!