Form.owner

27/04/2006 - 20:46 por Manuel Bernal | Informe spam
hola chicos espero que me pueda ayudar con lo siguiente. tengo un formulario
principal en forma MDI padre el cual funciona perfectamente dentro de el
cargo un formulario hijo de forma excelente sin ningun problema hasta ese
nivel todo bien, dentro del formulario hijo creo un tercer formulario el cual
quiero que dependa dependa del formulario hijo es decir si minimizo el hijo
que se minimize este tercer formulario si cierro el hijo que se cierre el
formulario, hasta ahorita sucede algo curioso si minimizo el hijo el tercer
fomularios se queda en pantalla pero si cierro el formulario hijo el tercer
formulario si se cierra. mi codigo es el siguiente.

El codigo para crear el formulario hijo es el siguiente apartir del padre MDI

Dim NewMDIChild As New Form2
NewMDIChild.MdiParent = Me
NewMDIChild.Show()

El codigo para generar el tercer formulario apartir del hijo es el siguiente
Dim frmtercero As New Form4
frmtercero.Owner = Me
frmtercero.Show()

leei todos los comentarios acerca de mdi que se encuentra en este foro y no
tuve la capacidad de visualizar si uno de ellos era mi solución.

de antemano gracias a todos los que respondan mi mensaje




L.I. Manuel Bernal

Preguntas similare

Leer las respuestas

#1 Luis Miguel Blanco
28/04/2006 - 11:39 | Informe spam
Hola Manuel

En teoría, cuando un formulario se ha creado como dependiente de otro, si
minimizas el formulario que ha establecido la dependencia, también se debería
de minimizar el dependiente.

Esto funciona perfectamente cuando lo haces usando formularios que no estén
contenidos o relacionados con un formulario MDI. Sin embargo, en cuanto un
formulario lo configuras como hijo de un MDI, si el hijo abre a su vez otro
formulario y lo hace dependiente suyo, cuando minimices el hijo, no se
minimizará el dependiente. Este comportamiento es debido a la particular
naturaleza del funcionamiento de un formulario cuando pertenece a un MDI.

Para conseguir este comportamiento en un escenario de trabajo como el tuyo,
en el que tienes un MDI, puedes probar desde el formulario hijo del MDI a
obtener la colección de formularios dependientes y minimizarlo manualmente.
Te acompaño un ejemplo de código:

'/////////////////////////////////////////////
' este es el formulario MDI, en el que abrimos un formulario
' que configuramos como hijo
Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
Dim frmHijo As frmHijoMDI = New frmHijoMDI
frmHijo.MdiParent = Me
frmHijo.Show()
End Sub
End Class

' este es el formulario hijo del MDI, en el que al pulsar un botón
' abrimos otro formulario que hacemos dependiente de este
' y en el evento de cambio de tamaño de este formulario,
' accedemos a la colección de formularios dependientes y en
' el caso de que lo estemos minimizando, también minimizamos el dependiente
Public Class frmHijoMDI
Inherits System.Windows.Forms.Form

Private Sub btnDependiente_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnDependiente.Click
Dim frmDep As frmDependiente = New frmDependiente
Me.AddOwnedForm(frmDep)
frmDep.Show()
End Sub

Private Sub frmHijoMDI_SizeChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.SizeChanged
If Me.WindowState = FormWindowState.Minimized Then
For Each oForm As Form In Me.OwnedForms
oForm.WindowState = FormWindowState.Minimized
Next
End If
End Sub

End Class
'/////////////////////////////////////////////

Espero que te sirva de ayuda para resolver tu problema.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Manuel Bernal" wrote:

hola chicos espero que me pueda ayudar con lo siguiente. tengo un formulario
principal en forma MDI padre el cual funciona perfectamente dentro de el
cargo un formulario hijo de forma excelente sin ningun problema hasta ese
nivel todo bien, dentro del formulario hijo creo un tercer formulario el cual
quiero que dependa dependa del formulario hijo es decir si minimizo el hijo
que se minimize este tercer formulario si cierro el hijo que se cierre el
formulario, hasta ahorita sucede algo curioso si minimizo el hijo el tercer
fomularios se queda en pantalla pero si cierro el formulario hijo el tercer
formulario si se cierra. mi codigo es el siguiente.

El codigo para crear el formulario hijo es el siguiente apartir del padre MDI

Dim NewMDIChild As New Form2
NewMDIChild.MdiParent = Me
NewMDIChild.Show()

El codigo para generar el tercer formulario apartir del hijo es el siguiente
Dim frmtercero As New Form4
frmtercero.Owner = Me
frmtercero.Show()

leei todos los comentarios acerca de mdi que se encuentra en este foro y no
tuve la capacidad de visualizar si uno de ellos era mi solución.

de antemano gracias a todos los que respondan mi mensaje




L.I. Manuel Bernal
Respuesta Responder a este mensaje
#2 Manuel Bernal
28/04/2006 - 17:46 | Informe spam
Miguel agradesco tu colaboración y probaré con este codigo te mantendre al
tanto. Gracias de nuevo y saludos
L.I. Manuel Bernal


"Luis Miguel Blanco" wrote:

Hola Manuel

En teoría, cuando un formulario se ha creado como dependiente de otro, si
minimizas el formulario que ha establecido la dependencia, también se debería
de minimizar el dependiente.

Esto funciona perfectamente cuando lo haces usando formularios que no estén
contenidos o relacionados con un formulario MDI. Sin embargo, en cuanto un
formulario lo configuras como hijo de un MDI, si el hijo abre a su vez otro
formulario y lo hace dependiente suyo, cuando minimices el hijo, no se
minimizará el dependiente. Este comportamiento es debido a la particular
naturaleza del funcionamiento de un formulario cuando pertenece a un MDI.

Para conseguir este comportamiento en un escenario de trabajo como el tuyo,
en el que tienes un MDI, puedes probar desde el formulario hijo del MDI a
obtener la colección de formularios dependientes y minimizarlo manualmente.
Te acompaño un ejemplo de código:

'/////////////////////////////////////////////
' este es el formulario MDI, en el que abrimos un formulario
' que configuramos como hijo
Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
Dim frmHijo As frmHijoMDI = New frmHijoMDI
frmHijo.MdiParent = Me
frmHijo.Show()
End Sub
End Class

' este es el formulario hijo del MDI, en el que al pulsar un botón
' abrimos otro formulario que hacemos dependiente de este
' y en el evento de cambio de tamaño de este formulario,
' accedemos a la colección de formularios dependientes y en
' el caso de que lo estemos minimizando, también minimizamos el dependiente
Public Class frmHijoMDI
Inherits System.Windows.Forms.Form

Private Sub btnDependiente_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnDependiente.Click
Dim frmDep As frmDependiente = New frmDependiente
Me.AddOwnedForm(frmDep)
frmDep.Show()
End Sub

Private Sub frmHijoMDI_SizeChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.SizeChanged
If Me.WindowState = FormWindowState.Minimized Then
For Each oForm As Form In Me.OwnedForms
oForm.WindowState = FormWindowState.Minimized
Next
End If
End Sub

End Class
'/////////////////////////////////////////////

Espero que te sirva de ayuda para resolver tu problema.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Manuel Bernal" wrote:

> hola chicos espero que me pueda ayudar con lo siguiente. tengo un formulario
> principal en forma MDI padre el cual funciona perfectamente dentro de el
> cargo un formulario hijo de forma excelente sin ningun problema hasta ese
> nivel todo bien, dentro del formulario hijo creo un tercer formulario el cual
> quiero que dependa dependa del formulario hijo es decir si minimizo el hijo
> que se minimize este tercer formulario si cierro el hijo que se cierre el
> formulario, hasta ahorita sucede algo curioso si minimizo el hijo el tercer
> fomularios se queda en pantalla pero si cierro el formulario hijo el tercer
> formulario si se cierra. mi codigo es el siguiente.
>
> El codigo para crear el formulario hijo es el siguiente apartir del padre MDI
>
> Dim NewMDIChild As New Form2
> NewMDIChild.MdiParent = Me
> NewMDIChild.Show()
>
> El codigo para generar el tercer formulario apartir del hijo es el siguiente
> Dim frmtercero As New Form4
> frmtercero.Owner = Me
> frmtercero.Show()
>
> leei todos los comentarios acerca de mdi que se encuentra en este foro y no
> tuve la capacidad de visualizar si uno de ellos era mi solución.
>
> de antemano gracias a todos los que respondan mi mensaje
>
>
>
>
> L.I. Manuel Bernal
Respuesta Responder a este mensaje
#3 Luis Miguel Blanco
01/05/2006 - 00:44 | Informe spam
Hola Manuel, no hay de qué 8-)

Espero que mi ejemplo te sea de utilidad.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Manuel Bernal" wrote:

Miguel agradesco tu colaboración y probaré con este codigo te mantendre al
tanto. Gracias de nuevo y saludos
L.I. Manuel Bernal


"Luis Miguel Blanco" wrote:

> Hola Manuel
>
> En teoría, cuando un formulario se ha creado como dependiente de otro, si
> minimizas el formulario que ha establecido la dependencia, también se debería
> de minimizar el dependiente.
>
> Esto funciona perfectamente cuando lo haces usando formularios que no estén
> contenidos o relacionados con un formulario MDI. Sin embargo, en cuanto un
> formulario lo configuras como hijo de un MDI, si el hijo abre a su vez otro
> formulario y lo hace dependiente suyo, cuando minimices el hijo, no se
> minimizará el dependiente. Este comportamiento es debido a la particular
> naturaleza del funcionamiento de un formulario cuando pertenece a un MDI.
>
> Para conseguir este comportamiento en un escenario de trabajo como el tuyo,
> en el que tienes un MDI, puedes probar desde el formulario hijo del MDI a
> obtener la colección de formularios dependientes y minimizarlo manualmente.
> Te acompaño un ejemplo de código:
>
> '/////////////////////////////////////////////
> ' este es el formulario MDI, en el que abrimos un formulario
> ' que configuramos como hijo
> Public Class Form1
> Inherits System.Windows.Forms.Form
>
> Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MenuItem2.Click
> Dim frmHijo As frmHijoMDI = New frmHijoMDI
> frmHijo.MdiParent = Me
> frmHijo.Show()
> End Sub
> End Class
>
> ' este es el formulario hijo del MDI, en el que al pulsar un botón
> ' abrimos otro formulario que hacemos dependiente de este
> ' y en el evento de cambio de tamaño de este formulario,
> ' accedemos a la colección de formularios dependientes y en
> ' el caso de que lo estemos minimizando, también minimizamos el dependiente
> Public Class frmHijoMDI
> Inherits System.Windows.Forms.Form
>
> Private Sub btnDependiente_Click(ByVal sender As System.Object, ByVal e
> As System.EventArgs) Handles btnDependiente.Click
> Dim frmDep As frmDependiente = New frmDependiente
> Me.AddOwnedForm(frmDep)
> frmDep.Show()
> End Sub
>
> Private Sub frmHijoMDI_SizeChanged(ByVal sender As Object, ByVal e As
> System.EventArgs) Handles MyBase.SizeChanged
> If Me.WindowState = FormWindowState.Minimized Then
> For Each oForm As Form In Me.OwnedForms
> oForm.WindowState = FormWindowState.Minimized
> Next
> End If
> End Sub
>
> End Class
> '/////////////////////////////////////////////
>
> Espero que te sirva de ayuda para resolver tu problema.
> Un saludo
> Luis Miguel Blanco
> http://www.dotnetmania.com
>
>
> "Manuel Bernal" wrote:
>
> > hola chicos espero que me pueda ayudar con lo siguiente. tengo un formulario
> > principal en forma MDI padre el cual funciona perfectamente dentro de el
> > cargo un formulario hijo de forma excelente sin ningun problema hasta ese
> > nivel todo bien, dentro del formulario hijo creo un tercer formulario el cual
> > quiero que dependa dependa del formulario hijo es decir si minimizo el hijo
> > que se minimize este tercer formulario si cierro el hijo que se cierre el
> > formulario, hasta ahorita sucede algo curioso si minimizo el hijo el tercer
> > fomularios se queda en pantalla pero si cierro el formulario hijo el tercer
> > formulario si se cierra. mi codigo es el siguiente.
> >
> > El codigo para crear el formulario hijo es el siguiente apartir del padre MDI
> >
> > Dim NewMDIChild As New Form2
> > NewMDIChild.MdiParent = Me
> > NewMDIChild.Show()
> >
> > El codigo para generar el tercer formulario apartir del hijo es el siguiente
> > Dim frmtercero As New Form4
> > frmtercero.Owner = Me
> > frmtercero.Show()
> >
> > leei todos los comentarios acerca de mdi que se encuentra en este foro y no
> > tuve la capacidad de visualizar si uno de ellos era mi solución.
> >
> > de antemano gracias a todos los que respondan mi mensaje
> >
> >
> >
> >
> > L.I. Manuel Bernal
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida