Usuario
Cerrar formulario al perder el foco

Pregunta
-
Estuve intentando con varias soluciones que encontré pero ninguna me funcionó. Cómo hago para que se cierre un formulario (secundario) si hago click en el formulario principal?
- Cambiado Enrique M. Montejo viernes, 1 de noviembre de 2013 11:47 Windows Forms
Todas las respuestas
-
si en el control principa tienes la instancia de ese form secundaria solo deberias usar el Close()
pero esto solo lo lograrias si ese form fue abierto desde el form principa
Private frm As Form1
private sub button1_click(..)
frm = New Form1
frm.Show()
End sub
como aqui tiene la instancia del form1 podrias usar el close desde otro evento
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
-
si eso se entendio
pero ese cerrado automatico alguien tiene que hacerlo, y es el form principal en algun evento, quizas en el gotfocus o en el activate realizar el cierre del form que se abrio
ademas no comentas como creas y lanzas el form secundario desde el principal?
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
-
para cerrar un formulario desde cualquier lugar debes ir a las propiedades del proyecto->en aplicacion -> modo de cerrado: al cerrar ultimo formulario.
es cambiar una propiedad.
luego para cerrar el formulario deseado desde cualquier parte de tu aplicacion lo haces con el comando.
my.forms.nombreformularioacerrar.close()
- Editado enterplasma miércoles, 15 de agosto de 2012 5:13
-
Hola
para poder cerrar el formulario cuando pierde el foco tienes que utilizar el evento Deactivate del formulario
Private Sub Form1_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Deactivate Me.Close() End Sub
Saludos -
Ya probé esa opción pero me aparece un excepcion de acceso en un openfiledialog que tiene el form. Si hago click en el form principal funciona correctamente (se cierra el form secundario), pero si presiono en el secundario me aparece la excepción
-
Su pongo que lo que sucede es que al abrir el openfiledialog el formulario secundario pierde el enfoque y se cierra
¿Y utilizando el evento Activated del formulario principal?
Todo el código va en el formulario principal
Dim formSecundario As Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If formSecundario Is Nothing Then formSecundario = New Form1 formSecundario.Show() End If End Sub Private Sub frmBuscarCliente_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated If formSecundario IsNot Nothing Then formSecundario.Close() formSecundario = Nothing End If End Sub
-
-
-