Programación General => Visual Basic 6.0 e inferiores => Visual Basic para principiantes => Mensaje iniciado por: andresfulo en Lunes 17 de Octubre de 2005, 13:06
Título: Cerrar Formulario Hijo
Publicado por: andresfulo en Lunes 17 de Octubre de 2005, 13:06
tengo una aplicación en visual basic 6 en la que tengo un formulario MDI padre que llama a unos u otros formularios hijos según se le ordene. La llamada la realiza con un "nombreformhijo.Show", y para cerrar estos form hijo utilizo "unload", con esto se descarga el form hijo de memoria y retorna al form padre, el problema es que al volver al form padre se ejecuta de nuevo la instrucción que había llamado al form hijo y este se ejecuta de nuevo. Cómo puedo cerrar el form hijo y que retorne al padre sin más...?
Título: Re: Cerrar Formulario Hijo
Publicado por: DiabloRojo en Lunes 17 de Octubre de 2005, 14:24
En qué parte del form padre mandas a cargar los formulariuos hijos?. Por lo que dices parece que lo hicieras en el evento Activate del form padre. Si es así podrías utilizar una variable de tipo lógico que te indique si determinado form hijo ya fue cargado o no. De cualquier forma postea el código a ver cual es el error.
Saludos.
DiabloRojo.
Título: Re: Cerrar Formulario Hijo
Publicado por: andresfulo en Lunes 17 de Octubre de 2005, 16:02
el código del formulario padre es el siguiente:
Private Sub Consumo_Bateria_Conjunto_Click() Formulario_Consumo_Conjunto.Show End Sub
Private Sub Consumo_Bateria_GPS_Click() Formulario_Consumo_GPS.Show End Sub
Private Sub Consumo_Bateria_GSM_Click() Formulario_Consumo_GSM.Show End Sub
Private Sub MDIForm_Load() Call EnlazarBase End Sub
Private Sub MDIForm_Unload(Cancel As Integer) End End Sub
Private Sub Base_Datos_Click() Formulario_BaseDatos.Show End Sub
Private Sub Iniciar_Medidas_Click() Formulario_Medidas.Show End Sub
Private Sub Cerrar_Aplicación_Click() End End Sub
y para cerrar el form hijo utilizo:
Private Sub Form_Unload(Cancel As Integer) Call cerrarpuertos Unload Me End Sub
Private Sub Finalizar_Medidas_Click() Call cerrarpuertos Unload Me End Sub
El Sub Finalizar_Medidas_Click() sirve para cerrar el formulario hijo mediante una opción del menú.
Título: Re: Cerrar Formulario Hijo
Publicado por: cpmario en Martes 18 de Octubre de 2005, 01:45
En el código que muestras no está la causa del error. Te aconsejo que con las herramientas de la barra de depuración sigas 'paso a paso' lo que hace el código hasta que descubras cual es la línea que hace que se cargue nuevamente la forma hija.
:comp:
Título: Re: Cerrar Formulario Hijo
Publicado por: andresfulo en Jueves 20 de Octubre de 2005, 21:17
Dentro del formulario hijo tengo una serie de bucles en los que se van tomando medidas sin parar...Al llamar al unload en el formulario hijo se cierra la ventana, pero automáticamente se reinicia el form hijo. Ejecutandolo paso a paso, tras el unload, el programa vuelve a la instrucción donde se había quedado y posteriormente empieza de nuevo en Fom_load....no entiendo porque vuelve a ejecutarse el Form_load??
Título: Re: Cerrar Formulario Hijo
Publicado por: cpmario en Viernes 21 de Octubre de 2005, 00:26
Lo que dices es lo que pasa si colocas un Unload a mitad de un bucle. Mejor debes de salir primero de bucle y después hace un Unload. Por ejemplo: