Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bioshock

Problema com Selecção da linha por inteiro. [Resolvido]

Mensagens Recomendadas

bioshock

    Private Sub DataGridView1_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseClick
        If DataGridView1.CurrentCell.Selected = True Then
            DataGridView1.Rows(e.RowIndex).Selected = True
        End If
    End Sub

O código acima funciona na perfeição para quando eu clico numa célula ele me seleccionar a linha toda. O problema está quando eu clico nos Headers ele dá-me erro.

"O índice estava fora do intervalo. Tem de ser não negativo e inferior ao tamanho da colecção. Nome do parâmetro: index"

Fui ver o valor do "e.RowIndex" e fica como -1.

Tenho andado a vasculhar mas sem resultado. Eu preciso dos headers para, consoante o clique, mostrar os registos por ordem crescente ou decrescente. Automaticamente a DataGridView faz isso, mas esta-me a dar erro quando clico nos headers.

Obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Resolvido, heis a solução:

 Private Sub DataGridView1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseUp
        Dim hit As DataGridView.HitTestInfo = Me.DataGridView1.HitTest(e.X, e.Y)
        If hit.Type = DataGridViewHitTestType.Cell Then
            Me.DataGridView1.ClearSelection()
            Me.DataGridView1.Rows(hit.RowIndex).Selected = True
End If

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.