VB.NET -  Pesquisa em DataGrid


 

Com a vinda do .NET é possível realizar algumas tarefas que nas versões anteriores do VB era um drama para executar, agora tudo ficou muito mais simplificado desde que saiba todos os recursos que cada uma das inúmeras classes oferecem.

 

Bem, vamos ao que interessa.

 

Para criar a função que pesquisa dentro de um DataGrid , basta seguir os passos a seguir:

 

  1. Crie um projeto Windows Form em Visual Basic .NET;
  2. Insira, um TextBox e um DataGrid no seu WinForm e alguns outros componentes para deixá-lo da forma abaixo:

 

  1. Abra a parte do código do WinForm ;
  2. Crie uma variável Privada a classe da seguinte forma:

 

Private WithEvents CM As CurrencyManager

 

  1. Agora preencha o seu DataGrid como você bem entender (XML, Banco de Dados, Arquivos Texto, na mão);
  2. Após preencher o DataGrid , você coloque a seguinte linha de código:

 

 

Me.CM = CType (Me.BindingContext(Me.DataGrid1.DataSource, _

               Me.DataGrid1.DataMember ), CurrencyManager)

 

O código da Pesquisa ficará da seguinte forma:

 

    Public Sub Localiza( ByRef grd As DataGrid, ByRef CurrencyManage As CurrencyManager, ByVal pTexto As String, ByVal pCol As Integer)

        Dim Ix As Integer

        Dim Size As Integer

        Dim TxCampo As String

        Dim TxGrid As String

 

        TxCampo = pTexto.ToUpper

        Size = TxCampo.Length

 

        For Ix = 0 To  CurrencyManage.Count - 1

            grd.UnSelect (Ix)

        Next

        CurrencyManage.Position = 0

        If Size = 0 Then Exit Sub

 

        For Ix = 0 To CurrencyManage.Count - 1

            TxGrid = Convert.ToString (grd.Item(Ix, pCol))

            If Microsoft.VisualBasic.Left (TxCampo, Size) = Microsoft.VisualBasic.Left(TxGrid, Size).ToUpper Then

                grd.Select (Ix)

                CurrencyManage.Position = Ix

                Exit For

            End If

        Next

 

    End Sub

 

 

Depois deste método criado para fazer a chamada para ele é muito simples, basta colocá-lo dentro do evento Change do TextBox criado anteriormente, e o mesmo ficará da seguinte forma:

 

Localiza( Me.DataGrid1, CM, TextBox .Text, 1)

 

Espero que este código auxilie alguns colegas desenvolvedores.. até a próxima.

 

 

Autor do Artigo

 

Jefferson Gobi Barbosa

Co-Organizador do GUP .Net

http://www.gupnet.com.br

Grupo de Usuários do Paraná - Plataforma .Net