Espero esto sea lo que tu quieres realizar
El Código fuente 512 muestra el código del menú de frmPrincipal que instancia este objeto y lo muestra como formulario hijo del MDI.
Private Sub mnuCarta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCarta.Click
' este formulario se abre como hijo del MDI
Dim ofrmCarta As New frmCarta()
ofrmCarta.MdiParent = Me
ofrmCarta.Show()
End Sub
Código fuente 512
A continuación agregaremos al proyecto el formulario frmBuscar. Este formulario actuará como dependiente de frmCarta, permitiéndonos buscar una cadena en el TextBox de este último. La Figura 306 muestra el aspecto de frmBuscar. Aunque no sería necesario, para adaptarlo mejor a su funcionamiento, hemos variado mediante la propiedad FormBorderStyle, el estilo de su borde a ventana de herramientas con el valor FixedToolWindow.
Para conseguir que frmBuscar se comporte como formulario dependiente, al pulsar dentro de frmCarta el botón Buscar, instanciaremos un objeto frmBuscar, añadiéndolo a la colección de formularios dependientes de frmCarta mediante el método AddOwnedForm( ), de la clase Form. El Código fuente 513 muestra el código del botón Buscar en el formulario frmCarta.
Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
' crear un objeto frmBuscar
Dim ofrmBuscar As New frmBuscar()
' establecer dependencia entre forms
Me.AddOwnedForm(ofrmBuscar)
ofrmBuscar.Show()
End Sub
Código fuente 513
Podemos eliminar la asociación entre un formulario propietario y uno dependiente mediante el método RemoveOwnedForm( ) en el formulario propietario. Esto no quiere decir que el formulario dependiente sea eliminado, simplemente se elimina su dependencia con respecto al propietario.
En lo que respecta al código de frmBuscar, al pulsar su botón Buscar, buscamos el contenido del control txtBuscar en el formulario propietario frmCarta.
Si la búsqueda tiene éxito, seleccionamos el texto encontrado dentro del propietario. La propiedad Owner del formulario nos devuelve una referencia del propietario, mientras que para manipular los controles de dicho propietario, realizaremos un moldeado de tipo o type casting sobre Owner utilizando la función CType( ) (observe el lector de nuevo, la enorme potencia que encierra esta función).
Además mostramos una etiqueta en el formulario dependiente, que sólo se visualizará al localizar el texto; cuando volvamos a escribir de nuevo texto a buscar, se ocultará dicha etiqueta. El Código fuente 514 muestra los métodos de frmBuscar que llevan a cabo estas labores.
' al pulsar este botón, buscamos en el formulario ' propietario de este dependiente
Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
Dim iResultadoBuscar As Integer
' la propiedad Owner contiene el formulario propietario
iResultadoBuscar = CType(Me.Owner, frmCarta).txtDocumento.Text.IndexOf(Me.txtBuscar.Text)
' si encontramos el texto buscado...
If iResultadoBuscar > 0 Then ' pasamos el foco al TextBox del formulario propietario ' y seleccionamos el texto encontrado CType(Me.Owner, frmCarta).txtDocumento.Focus() CType(Me.Owner, frmCarta).txtDocumento.SelectionStart = iResultadoBuscar CType(Me.Owner, frmCarta).txtDocumento.SelectionLength =
Me.txtBuscar.Text.Length
Me.lblEncontrado.Show() End If
End Sub
' al volver a teclear un valor a buscar, se oculta el Label Private Sub txtBuscar_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBuscar.TextChanged
Me.lblEncontrado.Hide()
End Sub
Código fuente 514
La imagenes no se muestran pero tienes un formulario principal, y este hace el llamado a otro para escribir un archivo, y en este hay botones en los cuales tu puedes mandar a traer otros formularios y estan dentro del mismo formulario 2