Visual Basic.NET - Mdi y formularios hijos

 
Vista:

Mdi y formularios hijos

Publicado por adninra (27 intervenciones) el 26/12/2005 13:49:54
Hola antes que nada Felices Fiestas a tod@s.
Miren tengo un pequeño problema tengo un formulario principal donde tengo un menu y quiero que al pulsar el menu se abre un formulario que se hijo del del menu. Como lo puedo hacer?. Por ahora mostrar el menu lo puedo hacer , pero el pequeño problema es que si pulso 20 veces en el menu se me abren 20 formulario.
Entonces en resulmen son dos dudas como controlar que solo se abra un formulario cuando lo seleccione de un menu.
Y la otra duda es como puedo crear esa ventana que muestro como hija de la del menu.
Antes que nada muchas gracias a tod@s.
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mdi y formularios hijos

Publicado por FrAn (9 intervenciones) el 26/12/2005 14:52:11
Buenas, hay mucha gente que se ha encontrado con ese problema, sobre todo quienes programaban en VB6 y se pasaron a .NET.

La diferencia más profunda entre VB6 y .NET es que VB6 no era un lenguaje orientado a objetos. Cuando pulsas sobre el menu y creas una ventana nueva estas creando un objeto nuevo y lo añades a la ventana madre, por si pulsas 20 veces sobre el menu se abre 20 ventanas distintas.

El problema lo puedes solucionar de varias formas según se mire. Puedes desahabilitar en el menu la opcion de abrir la ventana cuando la abres y habilitarlo de nuevo al cerrarla o puedes hacerlo de forma más elegante activando la ventana si esta abierta o iniciarla en el caso de que no lo este o puedes hacerlo como a ti se te ocurra.

Una forma de hacerlo seria crear una variable global para todo el formulario (o declararla statica dentro del metodo) que sea del tipo de tu ventana. Cuando pulses en el menu preguntas si la ventana es nula, en este caso la inicializas y la muestras, si no es nula la activas. Cuando cierres la ventana no olvides volver a poner la variable a nula.

Un Saludos.

Felice Navidad y nuevo 2006.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mdi y formularios hijos

Publicado por adninra (27 intervenciones) el 26/12/2005 17:15:58
Muchas gracias por tu ayuda lo mirare a ver que tal me va. Y Felices Fiestas para ti tambien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mdi y formularios hijos

Publicado por Sergio (1 intervención) el 03/03/2006 12:58:48
Viendo la fecha igual llego un poco tarde, pero se me ha ocurrido una alternativa:

Dim f As FrmPrueba
Dim f2 As Form
Dim esta As Boolean
For Each f2 In Me.MdiChildren
esta = esta Or f2.Name = "FrmPrueba"
If esta Then
f2.Show()
End If
Next
If Not esta Then
f = New FrmInfoSistema
f.MdiParent = Me
f.Show()
End If

Colocando este codigo en el padre nos lo crea solo si no existe, no haria falta variables de control.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar