none
COMO REFRESCAR EN FORMULARIO USANDO LAS FLECHAS DE DIRECCION EN UN DATAGRIDVIEW RRS feed

  • Pregunta

  • Tengo un formulario que tiene un DataGridView. 

    Cuando hago clic en una celda, sobre el evento DataGridView1_CellClick recupero todos los datos del registro en cuestion almacenados en una base de datos y los muestro en diferentes textboxes desparramados en el formulario.

    Como podría adaptar esa misma rutina en el caso que el usuario no quiera hacer clic sino que deseara moverse con la flechas del cursor desde el teclado.

    Pero además, quiero conservar tambien el evento que ya tengo definido... 

     


    Marcelo Robin
    lunes, 6 de junio de 2011 20:38

Respuestas

  • "Mint Man" preguntó:

    > Como podría adaptar esa misma rutina en el caso que
    > el usuario no quiera hacer clic sino que deseara
    > moverse con la flechas del cursor desde el teclado.
    >
    > Pero además, quiero conservar tambien el evento que
    > ya tengo definido...

    No hace falta que conserves también el código fuente existente en el evento CellClick, porque si he entendido bien tu pregunta, el evento que necesitas detectar es el evento SelectionChanged, el cual se desencadenará cada vez que se cambie de celda, bien con las teclas de dirección o con el ratón:

        Private Sub DataGridView1_SelectionChanged( _
            ByVal sender As Object, ByVal e As EventArgs) _
            Handles DataGridView1.SelectionChanged

            ' Referenciamos la celda actual
            '
            Dim cell As DataGridViewCell = DataGridView1.CurrentCell

            ' Mostramos el valor de la celda en un control TextBox
            '
            Dim value As Object = cell.Value

            TextBox1.Text = Convert.ToString(value)

        End Sub

    Si tu intención es recuperar los datos del registro o fila actual, entonces ejecutarías lo siguiente:

        Private Sub DataGridView1_SelectionChanged( _
            ByVal sender As Object, ByVal e As EventArgs) _
            Handles DataGridView1.SelectionChanged

            ' Referenciamos la fila actual
            '
            Dim row As DataGridViewRow = DataGridView1.CurrentRow

            ' Mostramos el valor de ciertas columnas en
            ' diferentes controles TextBox.
            '
            TextBox1.Text = Convert.ToString(row.Cells(0).Value)
            TextBox2.Text = Convert.ToString(row.Cells(1).Value)

        End Sub

    Te comento que no te olvides de hacer la conversión a String mediante el método compartido ToString de la clase Convert, a fin de evitar un error con los posibles valores NULL que pudieran existir en las celdas del control DataGridView.

    Un saludo

     


    Enrique Martínez
      [MS MVP - VB]

    • Marcado como respuesta Mint Man martes, 7 de junio de 2011 12:22
    martes, 7 de junio de 2011 7:28
    Moderador