none
Boton DERECHO del Mouse: no lo toma como Click !!!

    Pregunta

  • Buenas noches!

    Tengo una datagridview, asociado a un datatable, y puse un menu contextual, para modificar o eliminar la fila actual.

    El problema es que con el boton derecho, no cambia la propiedad del datagridview CurrentRow.Index (con el boton izq si lo hace)

    Como puedo solucionarlo??

    Muchassssss Graciasssssss

    viernes, 4 de noviembre de 2016 2:48

Respuestas

  • Hola, Apóyate en el evento MouseDown del gridview para actualizarlo.  te dejo un modelo que te puede funcionar:

    private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    var hti = dataGridView1.HitTest(e.X, e.Y);
                    dataGridView1.ClearSelection();
                    dataGridView1.Rows[hti.RowIndex].Selected = true;
                }
            }

    • Propuesto como respuesta Alberto PoblacionMVP viernes, 4 de noviembre de 2016 12:10
    • Marcado como respuesta tantrix sábado, 5 de noviembre de 2016 15:30
    viernes, 4 de noviembre de 2016 6:59
  • Hola Anibal!!

    muchas gracias x tu respuesta!!

    yo uso VB.net pero lo adapte y me funciono perfecto, para que esa fila se convierta en la actual (además de quedar seleccionada) le puse:

     Private Sub DGV_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DGV.MouseDown

            If (e.Button = MouseButtons.Right) Then
                Dim f = DGV.HitTest(e.X, e.Y)
                DGV.ClearSelection()
                DGV.Rows(f.RowIndex).Selected = True
                'le agregue para que me cambie el RowIndex
                Dim nro As Integer = f.RowIndex
                DGV.CurrentCell = DGV.Item(0, nro)
            End If

        End Sub

    • Marcado como respuesta tantrix sábado, 5 de noviembre de 2016 15:30
    viernes, 4 de noviembre de 2016 12:07

Todas las respuestas

  • Hola, Apóyate en el evento MouseDown del gridview para actualizarlo.  te dejo un modelo que te puede funcionar:

    private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    var hti = dataGridView1.HitTest(e.X, e.Y);
                    dataGridView1.ClearSelection();
                    dataGridView1.Rows[hti.RowIndex].Selected = true;
                }
            }

    • Propuesto como respuesta Alberto PoblacionMVP viernes, 4 de noviembre de 2016 12:10
    • Marcado como respuesta tantrix sábado, 5 de noviembre de 2016 15:30
    viernes, 4 de noviembre de 2016 6:59
  • Hola Anibal!!

    muchas gracias x tu respuesta!!

    yo uso VB.net pero lo adapte y me funciono perfecto, para que esa fila se convierta en la actual (además de quedar seleccionada) le puse:

     Private Sub DGV_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DGV.MouseDown

            If (e.Button = MouseButtons.Right) Then
                Dim f = DGV.HitTest(e.X, e.Y)
                DGV.ClearSelection()
                DGV.Rows(f.RowIndex).Selected = True
                'le agregue para que me cambie el RowIndex
                Dim nro As Integer = f.RowIndex
                DGV.CurrentCell = DGV.Item(0, nro)
            End If

        End Sub

    • Marcado como respuesta tantrix sábado, 5 de noviembre de 2016 15:30
    viernes, 4 de noviembre de 2016 12:07
  • Excelente.  No olvides cerrar la preguntada marcando la respuesta.

    saludos

    viernes, 4 de noviembre de 2016 12:26