SELECIONAR LINHA DGV COM O LADO DIREITO DO MOUSE

 Tópico anterior Próximo tópico Novo tópico

SELECIONAR LINHA DGV COM O LADO DIREITO DO MOUSE

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#484046 - 20/08/2018 09:29:26

SANROMAN
MONGAGUA
Cadast. em:Setembro/2013


Ol amigos

Uso o seguinte cdigo para selecionar uma linha DataGridView:

  Private Sub dgvReceitaZoomMes_MouseDown(sender As Object, e As MouseEventArgs) Handles dgvReceitaZoomMes.MouseDown

        Dim selecionaLinha As DataGridView.HitTestInfo = dgvReceitaZoomMes.HitTest(e.X, e.Y)

        If selecionaLinha.RowIndex > -1 Then

            For i As Integer = 0 To dgvReceitaZoomMes.Rows.Count - 1
                dgvReceitaZoomMes.Rows(i).Selected = False
            Next

            dgvReceitaZoomMes.Rows(selecionaLinha.RowIndex).Selected = True

        End If

    End Sub


Ele seleciona a linha corretamente mas no passa o ndice para essa linha selecionada.
Assim sendo no consigo que me mostre o contextmenustrip criado para a linha selecionada. Mostra a ltima linha com ndice antes de selecionar uma nova linha com o lado direito do mouse.

Como fao para, ao apertar o lado direito do mouse, selecionar a linha e mudar o ndice para a mesma.
J tentei de vrias formas e no estou conseguindo progredir. Realmente estou precisando de ajuda com esse problema.

Desde j grato pela ajuda.




San Roman

[]Por mais distncia que a tecnologia possa encurtar, nada mais prximo do que um abrao.[]
J.Pires


Resposta escolhida #484053 - 20/08/2018 12:11:17

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Mais ou menos isso:
Private Sub DataGridView1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDown
        Dim hti As DataGridView.HitTestInfo = DataGridView1.HitTest(e.X, e.Y)
        If hti.RowIndex > -1 Then
            For i As Integer = 0 To DataGridView1.Rows.Count - 1
                DataGridView1.Rows(i).Selected = False
            Next

            DataGridView1.Rows(hti.RowIndex).Selected = True
        End If
    End Sub

s adaptar para seu uso.

____________________________________________________
No h nessa vida algo que no se possa alcanar, voc s precisa ir buscar.

#484069 - 21/08/2018 09:09:42

SANROMAN
MONGAGUA
Cadast. em:Setembro/2013


Bom Dia PerciFilho

O cdigo que deixou como exemplo exatamente igual ao que postei.

Ou seja, o comportamento o mesmo, seleciona a linha mas no coloca o ndice na linha selecionada.




San Roman

[]Por mais distncia que a tecnologia possa encurtar, nada mais prximo do que um abrao.[]
J.Pires


#484071 - 21/08/2018 10:30:39

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Desculpa a, amigo, falte de ateno.
Experimente usar o evento Opening do ContextMenu. Mais ou menos assim: (est em C#)

private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
    dgv.AccessibilityObject.HitTest(MousePosition.X, MousePosition.Y).Select(AccessibleSelection.TakeSelection);
}


Faz tempo que no uso o Vb.Net mas acho que assim:

Private Sub contextMenuStrip1_Opening(ByVal sender As Object, ByVal e As CancelEventArgs)
    dgv.AccessibilityObject.HitTest(MousePosition.X, MousePosition.Y).[Select](AccessibleSelection.TakeSelection)
End Sub



____________________________________________________
No h nessa vida algo que no se possa alcanar, voc s precisa ir buscar.

#484073 - 21/08/2018 14:00:52

SANROMAN
MONGAGUA
Cadast. em:Setembro/2013


Boa tarde, PerciFilho

Muito obrigado, funcionou perfeitamente, darei o tpico como encerrado.

Ainda bem que as pessoas se ajudam...

Valeu

San Roman

[]Por mais distncia que a tecnologia possa encurtar, nada mais prximo do que um abrao.[]
J.Pires


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por SANROMAN em 21/08/2018 14:03:06