Hola
Voy a intentar explicar mi problema que para mi no es muy fácil explicarlo.
Tengo varios formulario digamos:
frmFormulario1
frmFormulario2
frmFormulario3
Y necesito detectar cual esta en un panel cada vez. Esto lo hago desde un frmFormularioX Yo hago esta pregunta al código:
If String.Left(Object.Class(FMain.pnlContenedor.Children[0]).Name, 3) = "frm" Then ' esto lo hago por que todos mis formulario empiezan por frm pero no es muy seguro, lo se.
Y despues hago:
Código:
Dim formulario As Form = FMain.pnlContenedor.Children[0] ' digamos que pasamos frmFormulario1
formulario.Close ' lo correcto sería frmFormulario1.Close
formulario.Reparent(FMain.pnlContenedor, 0, 0) ' y justo aquí dice siempre - objeto inválido en frmFormularioX -
formulario.Raise
Como resuelvo lo del objeto inválido, me dan una guía.
Gracías.
Nota he visto que si uso:
Esto si funciona
Código:
frmFormulario1.Close
frmFormulario1.Reparent(FMain.pnlContenedor, 0, 0)
frmFormulario1.Raise
Esto no por que cierro el formulario y quiero reutilizarlo pero es imposible
Código:
formulario.Close
formulario.Reparent(FMain.pnlContenedor, 0, 0)
formulario.Raise
Dejo claro que es una ampliación de la explicación anterior.