cerrar forms

22/11/2005 - 20:56 por Karlos Traveceras | Informe spam
tengo este problema.. en visual basic 2005

hay tres froms f1 f2 y f3

el f1 manda llamar al f2 y al f3

pero lo q yo necesito es q cuando se cierre el f1.. de paso me cierre el f2
o el f3 si es q estan abiertos..

ya le intente con el evento formclose.. y con el evento formclosing
dentro de esos eventos he puesto lo siguiente

my.forms.f1.close ...y no funciona..
my.forms.f1.dispose y tampoco..

.. y pues no he dado con la solucion. .si alguien me pasa un tip.. se los
agradecere...


de antemano.. muchas gracias..

Preguntas similare

Leer las respuestas

#1 Karlos Traveceras
23/11/2005 - 01:55 | Informe spam
Talvez me falto comentar.. q f1 no es el principal.. antes q f1 ya hay
abiertos otros mas..

cuando yo cierro mi form principal. se termina mi aplicacion.. y eso
funciona perfectamente..

pero existe un momento en el programa q tengo varios forms abiertos.. y
todos en modo show.. o sea q puedo abrir cuantos necesite.. aqui lo q quiero
hacer es q si cierro el form de donde llame a todos los demas.. se cierren
todos los q se mandaron llamar y no tenga q cerrar uno por uno..

mi programa esta mas o menos asi..

fprincipal
form catalogos (de aqui se abren) form prov. form prod ,, form lineas
form ventas
etc

lo q exactamente necesito es q cuando cierre el form de catalogos.. se
cierren los form de prov.. prod.. y lineas..

de antemano muchas gracias..





"Jorge Serrano [MVP VB]" wrote:

Si el f1 es el formulario principal y lo cierras, se cierran todos los
formularios de la aplicación si están abiertos.

¿Cuál es el formulario principal?

El siguiente código de ejemplo funcionaría perfectamente:

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim MiForm As New Form2
MiForm.Show()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim MiForm As New Form3
MiForm.Show()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
End Class


Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Karlos Traveceras" wrote:

>
> tengo este problema.. en visual basic 2005
>
> hay tres froms f1 f2 y f3
>
> el f1 manda llamar al f2 y al f3
>
> pero lo q yo necesito es q cuando se cierre el f1.. de paso me cierre el f2
> o el f3 si es q estan abiertos..
>
> ya le intente con el evento formclose.. y con el evento formclosing
> dentro de esos eventos he puesto lo siguiente
>
> my.forms.f1.close ...y no funciona..
> my.forms.f1.dispose y tampoco..
>
> .. y pues no he dado con la solucion. .si alguien me pasa un tip.. se los
> agradecere...
>
>
> de antemano.. muchas gracias..
>
>
>
Respuesta Responder a este mensaje
#2 Jorge Serrano [MVP VB]
23/11/2005 - 10:32 | Informe spam
El siguiente código hace esto que indicas:

(Hay un formulario principal, otro secundario que lanza otros dos (o los que
cargue) y que al cerrar éste, cierra los que haya cargado).

Lo que no está gestionado (y eso es cosa tuya) es el hecho de que se cierre
alguno de los formularios abiertos por el segundo formulario y luego se
cierre el segundo formulario.

He utilizado un Array, pero se puede hacer con una colección también.

Espero que sirva para captar la idea.


Dim MiArr() As Object

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim MiForm As New Form3
MiForm.Show()
Gestion_Forms(MiForm)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim MiForm As New Form4
MiForm.Show()
Gestion_Forms(MiForm)
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
For I As Integer = 0 To MiArr.Length - 1
CType(MiArr(I), Form).Close()
Next
Me.Close()
End Sub

Private Sub Gestion_Forms(ByVal Formulario As Object)
If MiArr Is Nothing Then
ReDim MiArr(0)
MiArr(0) = Formulario
Else
ReDim Preserve MiArr(MiArr.Length)
MiArr(MiArr.Length - 1) = Formulario
End If
End Sub

Un saludo.
Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Karlos Traveceras" wrote:

Talvez me falto comentar.. q f1 no es el principal.. antes q f1 ya hay
abiertos otros mas..

cuando yo cierro mi form principal. se termina mi aplicacion.. y eso
funciona perfectamente..

pero existe un momento en el programa q tengo varios forms abiertos.. y
todos en modo show.. o sea q puedo abrir cuantos necesite.. aqui lo q quiero
hacer es q si cierro el form de donde llame a todos los demas.. se cierren
todos los q se mandaron llamar y no tenga q cerrar uno por uno..

mi programa esta mas o menos asi..

fprincipal
form catalogos (de aqui se abren) form prov. form prod ,, form lineas
form ventas
etc

lo q exactamente necesito es q cuando cierre el form de catalogos.. se
cierren los form de prov.. prod.. y lineas..

de antemano muchas gracias..





"Jorge Serrano [MVP VB]" wrote:

> Si el f1 es el formulario principal y lo cierras, se cierran todos los
> formularios de la aplicación si están abiertos.
>
> ¿Cuál es el formulario principal?
>
> El siguiente código de ejemplo funcionaría perfectamente:
>
> Public Class Form1
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
> Dim MiForm As New Form2
> MiForm.Show()
> End Sub
>
> Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button2.Click
> Dim MiForm As New Form3
> MiForm.Show()
> End Sub
>
> Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button3.Click
> Me.Close()
> End Sub
> End Class
>
>
> Jorge Serrano Pérez
> Microsoft MVP VB.NET
> PortalVB.com
> http://www.portalvb.com/
> Weblog de Jorge Serrano
> http://weblogs.golemproject.com/jorge/
>
>
> "Karlos Traveceras" wrote:
>
> >
> > tengo este problema.. en visual basic 2005
> >
> > hay tres froms f1 f2 y f3
> >
> > el f1 manda llamar al f2 y al f3
> >
> > pero lo q yo necesito es q cuando se cierre el f1.. de paso me cierre el f2
> > o el f3 si es q estan abiertos..
> >
> > ya le intente con el evento formclose.. y con el evento formclosing
> > dentro de esos eventos he puesto lo siguiente
> >
> > my.forms.f1.close ...y no funciona..
> > my.forms.f1.dispose y tampoco..
> >
> > .. y pues no he dado con la solucion. .si alguien me pasa un tip.. se los
> > agradecere...
> >
> >
> > de antemano.. muchas gracias..
> >
> >
> >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida