none
Problema al enviar datos del datagrid del formulario hijo al formulario padre. No ocurre nada. RRS feed

  • Pregunta

  • Hola amigos, espero puedan apoyarme con el siguiente detalle:

    Necesito enviar un renglón de un datagrid view de un formulario hijo a los text box de un formulario padre. Luego de enviarlos el formulario hijo debe cerrarse en automático.

    tengo un formulario hijo al cual mando llamar desde un formulario padre con el siguiente código:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim S As New SelUN 
            S.MdiParent = Me.ParentForm
            consultar(S.DataGridView1)
            S.Show()
            S.DataGridView1.Columns(0).HeaderText = "Código"
            S.DataGridView1.Columns(0).Visible = False
            S.DataGridView1.Columns(1).HeaderText = "Nombre"
            S.DataGridView1.Columns(1).Width = 438
    End Sub

    Hasta aquí todo marcha bien y el formulario hijo se muestra sin problema, además el formulario padre se queda abierto mientras se abre el formulario hijo, que es como lo ocupo.

    En el formulario hijo, tengo un DataGridView, al cual requiero pasarle las columnas de un renglón a los TextBox del formulario Padre. Lo hago con este código:

      Sub mostrar_datos()
            Try
                With DataGridView1
    
                    AddCTA.TextBox1.Text = .Item(0, .CurrentRow.Index).Value   
                    AddCTA.TextBox2.Text = .Item(1, .CurrentRow.Index).Value
                End With
            Catch ex As Exception
            End Try
        End Sub


    Luego en el DataGrid, mando llamar la función anterior con este código.

    Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    
            mostrar_datos()
            Me.Close()
    
        End Sub

    Pero no ocurre nada, los datos no se pasan al formulario padre, ni el formulario hijo se cierra. No me manda ningún error de ejecución el código.

    Alguna sugerencia sobre qué puedo hacer para resolver este detalle? Desde ya muchas gracias.

    PD: Este procedimiento siempre me ha funcionado, pero ahora que estoy usando interfaces MDI tengo problemas.

    • Cambiado Enrique M. Montejo martes, 20 de marzo de 2018 16:11 Pregunta relacionada con controles de Windows Forms.
    jueves, 15 de marzo de 2018 19:38

Todas las respuestas

  • Hola Zarpis,

    En relacion a tu consulta te comparto un enlace que te puede ayudar con informacion para manipular los datagridview

    https://docs.microsoft.com/es-es/dotnet/framework/winforms/controls/how-to-manipulate-rows-in-the-windows-forms-datagridview-control

     Quedo al pendiente de tus comentarios

    Saludos cordiales, gracias por usar los foros de MSDN

    Tonatiuh Abrego

    _____
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. 

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    • Propuesto como respuesta Tonatiuh Abrego lunes, 19 de marzo de 2018 18:13
    viernes, 16 de marzo de 2018 23:59
  • El enlace no me ayudó mucho para resolver el detalle que tenía. Lo resolví poniendo en el código el nombre de los formularios que deseaba abrir con interfaz MDI, en lugar de usar variables, es decir:

    Pase de esto:

    Dim S As New SelUN 
            S.MdiParent = Me.ParentForm
            consultar(S.DataGridView1)
            S.Show()
            S.DataGridView1.Columns(0).HeaderText = "Código"
            S.DataGridView1.Columns(0).Visible = False
            S.DataGridView1.Columns(1).HeaderText = "Nombre"
            S.DataGridView1.Columns(1).Width = 438
    End Sub

    A esto:

            NombreForm.MdiParent = Me.ParentForm
            consultar(NombreForm.DataGridView1)
            NombreForm.Show()
            NombreForm.DataGridView1.Columns(0).HeaderText = "Código"
            NombreForm.DataGridView1.Columns(0).Visible = False
            NombreForm.DataGridView1.Columns(1).HeaderText = "Nombre"
            NombreForm.DataGridView1.Columns(1).Width = 438
    End Sub

    Con eso me funcionó!


    • Editado Zarpis lunes, 26 de marzo de 2018 17:32
    lunes, 26 de marzo de 2018 17:31