• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Chamuanza

Busca continua em Datagrid

6 mensagens neste tópico

Oi pessoal

Tenho este código que me faz a busca em uma coluna da Datagrid, funciona bem, mas como eu faço para que o ponteiro me salte para o valor igual seguinte, quando volto a clicar no botão de busca.

Dim texto As String = Nothing

        If ToolStripTextBox1.Text <> String.Empty Then
            'percorre cada linha do DataGridView
            For Each linha As DataGridViewRow In PrincipalDataGridView.Rows
                'percorre cada célula da linha
                For Each celula As DataGridViewCell In PrincipalDataGridView.Rows(linha.Index).Cells
                    'se a coluna for a coluna 1 (Nome) então verifica o criterio
                    If celula.ColumnIndex = 2 Then
                        texto = celula.Value.ToString.ToLower
                        'se o texto informado estiver contido na célula então seleciona toda linha
                        If texto.Contains(ToolStripTextBox1.Text.ToLower) Then
                            'seleciona a linha
                            Me.PrincipalDataGridView.Rows(celula.RowIndex).Selected = True
                            'faz da seleção a linha currente
                            Me.PrincipalDataGridView.CurrentCell = celula
                            Exit Sub
                        End If
                    End If
                Next
            Next
        End If

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá,

Guardas em uma variável privada (fora do sub) o index da linha encontrada, e na segunda pesquisa, verificas se a posição encontrada é igual ao index encontrado anteriormente, e caso seja, continuas a pesquisa.

É mais ou menos isto!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não consigo por em pratica a explicação

tenho o codigo associado ao evento de um botão

Fui Criar uma variavel

Dim LinhaNum as Integer

e antes do exit sub no codigo fiz:

LinhaNum= Me.PrincipalDataGridView.Rows.    e daqui não passo pois da-me erro não consigo encontrar evento para concluir a linha a fim de ir buscar o valor da RowIndex

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deverá ser mais ou mesmos (não testei)

LinhaNum = linha.RowIndex ou Index

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

de facto assim é  LinhaNum = linha.Index

mas faço uma pergunta

Quando o evento chega ao exit sub não vai apagar o valor da variavel LinhaNum?

Se assim for como e que verifico a condição?

0

Partilhar esta mensagem


Link 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