none
Pasar Datos de DataGridView a TexBox RRS feed

  • Pregunta

  • Hola, espero me ayuden a mi interrogante, resulta que estoy realizando una consulta a una tabla llamada Paciente, la cual muestro la informacion en un DataGridView.

    Mi interrogante...

    Puedo pasar la informacion del DataGridView al Texbox?

    Les dejo una imagen de referencia a mi duda, donde pasaria nombre y apellido a un solo textbox...

    Gracias de antemano, por la ayuda...

    P.D: El DataGridView se encuentra en el mismo tabpage, y no en uno diferente, lo de la imagen, es un ejemplo para ilustrar la interrogante.


    lunes, 30 de mayo de 2016 4:08

Respuestas

  • Hola Armando Rodas,

    Si el dataGridView está en el mismo contenedor que el textBox, en este caso el TabPage, solo es cuestión de obtener la fila actual y obtener los valores.

     txtNombrePaciente.Text = String.Format("{0} {1}",
                                DataGridView1.CurrentRow.Cells("Nombre").Value,
                                DataGridView1.CurrentRow.Cells("Apellido").Value)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Armando Rodas jueves, 2 de junio de 2016 5:24
    lunes, 30 de mayo de 2016 4:40
  • Armando Rodas,

    No veo porque no habría de funcionar. El evento CellEnter se desencadena cuando la celda recibe el foco y en el código validamos que sólo responda para cuando se seleccione las columnas 1 y 2 que en tu caso son Nombre y Apellido, en caso de no tener ese índice (base 0) debes de cambiar por el correcto. 

    Imagino que el modo de selección es de sólo celda, ¿verdad?

    dataGridView1.SelectionMode = DataGridViewSelectionMode.CellSelect

    • Marcado como respuesta Armando Rodas jueves, 2 de junio de 2016 5:18
    miércoles, 1 de junio de 2016 0:55

Todas las respuestas

  • Hola Armando Rodas,

    Si el dataGridView está en el mismo contenedor que el textBox, en este caso el TabPage, solo es cuestión de obtener la fila actual y obtener los valores.

     txtNombrePaciente.Text = String.Format("{0} {1}",
                                DataGridView1.CurrentRow.Cells("Nombre").Value,
                                DataGridView1.CurrentRow.Cells("Apellido").Value)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Armando Rodas jueves, 2 de junio de 2016 5:24
    lunes, 30 de mayo de 2016 4:40
  • Armando Rodas,

    ¿En que contexto desea pasar el valor de la fila? ¿Al seleccionar la fila? 

    Private Sub dataGridView1_SelectionChanged(sender As Object, e As EventArgs)
    	Dim row As DataGridViewRow = dataGridView1.CurrentRow
    
            textBox1.Text = String.Format("{0} {1}", row.Cells(1).Value, row.Cells(2).Value)
    End Sub


    lunes, 30 de mayo de 2016 4:43
  • Si, seria al seleccionar la fila, William Morales
    lunes, 30 de mayo de 2016 4:52
  • Si, seria al seleccionar la fila, William Morales

    De acuerdo, entonces el código que te he propuesto -que se desencadena cada vez que se selecciona una fila del objeto DataGridView- servirá, aunque te sugiero cambiar el estilo de selección por la selección total de la fila:

    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect

    lunes, 30 de mayo de 2016 4:57
  • Perfecto, me ha salido de maravilla, pero me disculpas si te hago otra pregunta, ahora como le hago para que me los cargue al hacer clic sobre el nombre o el apellido?

    lunes, 30 de mayo de 2016 6:35
  • Armando Rodas,

    De acuerdo, entonces podríamos usar el evento CellEnter, la idea es que el evento nos proporcione la información del índice de la columna sobre la que se hizo clic para restringir sólo a la columna 1 y 2.

    Private Sub dataGridView1_CellEnter(sender As Object, e As DataGridViewCellEventArgs)
    	If e.ColumnIndex = 1 OrElse e.ColumnIndex = 2 Then
    		Dim row As DataGridViewRow = dataGridView1.Rows(e.RowIndex)
    
    		txtDatoSeleccionado.Text = String.Format("{0} {1}", row.Cells(1).Value, row.Cells(2).Value)
    	End If
    End Sub

    lunes, 30 de mayo de 2016 15:52
  • Muchas gracias pero te cuento que no me ha funcionado, crees que puedes darme un ejemplo un poco mas detallado, yo te agradeceria mucho por la ayuda...
    miércoles, 1 de junio de 2016 0:49
  • Armando Rodas,

    No veo porque no habría de funcionar. El evento CellEnter se desencadena cuando la celda recibe el foco y en el código validamos que sólo responda para cuando se seleccione las columnas 1 y 2 que en tu caso son Nombre y Apellido, en caso de no tener ese índice (base 0) debes de cambiar por el correcto. 

    Imagino que el modo de selección es de sólo celda, ¿verdad?

    dataGridView1.SelectionMode = DataGridViewSelectionMode.CellSelect

    • Marcado como respuesta Armando Rodas jueves, 2 de junio de 2016 5:18
    miércoles, 1 de junio de 2016 0:55
  • Hey, al fin me ha salido bien, gracias...
    jueves, 2 de junio de 2016 5:19