miércoles, 5 de septiembre de 2012

Pasar valores entre 2 Forms MDI Child en VB.NET 2008

Reciente me sucedio una situacion en la que necesitaba pasar valores de un Form Hijo a otro dentro de un MDI Padre. El escenario era este. Tengo un MDI, cuyo MenuStrip abre 2 Forms Hijos juntos. Un formulario hijo lista el ID y Nombre de todos los empleados. Al dar doble click a un empleado en particular, necesito mostrar el valor en el segundo formulario hijo. En resumen necesitaba pasar el ID del empleado al segundo formulario hijo de tal forma cargar otros datos en el segundo formulario. Simulare el mismo escenario con un ejemplo simple. Imaginemos que deseamos enviar un valor de un form hijo para mostrarlo en el segundo. El ejemplo UI se vera asi:
Para este ejemplo escribimos el siguiente codigo en el evento click del menustrip
Dim frm3 As New Form3
        With frm3
            .MdiParent = Me
            .StartPosition = FormStartPosition.Manual
            Dim left As Integer = 0
            Dim top As Integer = 140
            .Location = New Point(left, top)
            .Show()
        End With
        Dim frm2 As New Form2
        frm2.StartPosition = FormStartPosition.Manual
        frm2.MdiParent = Me
        frm2.Show()
y este codigo es para el evento click del boton del MDIChildForm1:
Dim frm3 As Form3 = Nothing
        For Each frm As Form In Me.MdiParent.MdiChildren
            If TypeOf frm Is Form3 Then
                frm3 = DirectCast(frm, Form3)
                frm3.Label1.Text = Me.TextBox1.Text
            End If
        Next
espero les sea de utilidad el codigo =)

2 comentarios: