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

Sign in to follow this  
bioshock

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

Recommended Posts

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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.