none
Problemas a la hora de coger una fila señalada de un datagridview RRS feed

  • Pregunta

  • Hola a todos, trabajo en Visual studio 2013. Mi problema es el siguiente:

    Tengo en mi formulario un datagridview. Cuando me aparecen los datos en él me aparece seleccionada la primera fila del mismo. Si pulso la tecla Enter se selecciona las segunda línea y así sucesivamente. Yo quiero controlar la tecla Enter para coger la fila seleccionada y así poder guardar sus datos. Para ello, investigando he encontrado el evento KeyPress  pero aquí me coge la fila siguiente a la que tenía seleccionada, que es la que desearía guardar.

    Private Sub dgvMostrarActivos_KeyPress(sender As Object, e As KeyPressEventArgs) Handles dgvMostrarActivos.KeyPress
            Try
                If e.KeyChar = Chr(Keys.Enter) Then
                    Me.PasarDatosalformulario_frmBuscarActivos()
                End If
    
            Catch ex As Exception
                Mensa("Error en dgvMostrarActivos_KeyPress", MsgBoxStyle.Information) : MensajeError(ex)
            End Try
        End Sub

    Dentro del procedimiento Me.PasarDatosalFormulario_frmBuscarActivos() controlo la fila seleccionada del datagridview y siempre me aparece la siguiente a la que tengo seleccionada. Así cogo los datos de la fila. Tengo puesto en el datagridview que solo se pueda seleccionar una fila.

    intIdActivoIndicePrincipalBuscado = Me.dgvMostrarActivos.SelectedRows(0).Cells("IdActivo").Value.ToString.Trim

    Un ejemplo:

    Nombre   Edad

    Antonio     25

    Maria         16

    Jesus        20.

    Cuando entro en el datagridview aparece seleccionada la fila "Antonio  25" y si pulso la tecla Enter se pasa a la fila "Maria  16" y me coge esta fila para yo guardar sus datos y no es lo que yo quiero. Yo quiero que me coga la fila "Antonio 25"

    Esperando respuesta

    Gracias de antemano.


    Saluditos, Charo

    lunes, 16 de noviembre de 2015 18:34

Respuestas

  • Utiliza mejor el evento KeyDown de esta forma puedes anular el comportamiento por defecto del DataGridView:

        Private Sub DataGridView1_KeyDown(sender As Object, e As KeyEventArgs) Handles DataGridView1.KeyDown
            If e.KeyCode = Keys.Enter Then
                Me.PasarDatosalformulario_frmBuscarActivos()
                e.Handled = True
            End If
        End Sub


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta charoeci1 martes, 17 de noviembre de 2015 8:08
    lunes, 16 de noviembre de 2015 20:37

Todas las respuestas

  • Utiliza mejor el evento KeyDown de esta forma puedes anular el comportamiento por defecto del DataGridView:

        Private Sub DataGridView1_KeyDown(sender As Object, e As KeyEventArgs) Handles DataGridView1.KeyDown
            If e.KeyCode = Keys.Enter Then
                Me.PasarDatosalformulario_frmBuscarActivos()
                e.Handled = True
            End If
        End Sub


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta charoeci1 martes, 17 de noviembre de 2015 8:08
    lunes, 16 de noviembre de 2015 20:37
  • Gracias Asier. Ya me funciona.

    Saluditos, Charo

    martes, 17 de noviembre de 2015 8:08