Visual Basic Foro
Programación => Visual Basic .NET / C# => Mensaje iniciado por: E N T E R en Marzo 21, 2013, 01:44:26 pm
-
Tengo un MDI Form, Con el MDI llamo a Form1 desde Form1 llamo a Form2 con tipo ShowDialog, a partir de aca tengo el problema que desde el MDI quiero llamar a otro Form que ni tiene referencia a form1 ni a form2. se puede hacer esto.
-
Aca dejo mi proyecto por que no me esta funcionando como quiero.
1. - Lo que necesito es mostrar primero un formulario (frmReportes) después de eso otro formulario (frmAlta) , pero mientras esta frmAlta no se pueda tener acceso a frmReportes. Como tengo así funciona. El problema es que quiero abrir el formulario frmVentas desde el MDI sin tocar frmReporte ni frmAlta
Ejemplo.
(http://snag.gy/tH1vp.jpg)
PROYECTO
https://dl.dropbox.com/s/gquvd3a55edx1i1/EjemploMDI.rar?token_hash=AAHqYaEv5oKP6FchnmQlpEGgMIbsqSej47IBAh66f1ighw&dl=1
-
Saludos ENTER !!!
Qué versión usas? Yo uso la 2008.
Bien a ver si entendí, necesitas mostrar el frmVentas desde el MDI directamente ¿no? Hasta donde se, en el evento Load del form, colocas:
frmVentas.mdiparent = mdiNombreDelMDIForm o
en el evento Load del MDI:
frmVentas.mdiparent = Me
Despues lo que tienes que hacer es llamarlo desde el menú que le crees al MDI (o un botón por ejemplo).
eso es lo que pude entender que buscas dado lo que planteaste (creo, si no mil perdones hermano por la mala interpretación de mi parte).
Saludos
Manuel F. Borrego S. 8)
Barcelona, Venezuela
-
Yo uso el vb.net 2010.
Lo que necesito es cuando llamo a (frmReporte) y que al llamar a otro formulario desde (frmReporte) quede todo bloqueado el (frmReporte) que no tenga el focus mientras esta en uso frmAlta. Pero que no me bloquee el MDI por si quiero abrir otro formulario que no sea (frmReporte).
Saludos y gracias por responder...
-
Debe haber una manera ortodoxa de hacerlo (aclaro que no tengo idea de VB.NET), pero tiro esta idea. Al hacer clic en Nuevo para abrir frmAlta, ponés como parent frmReporte, inhabilitás los botones (o los controles que fuere necesario) de frmReporte y abrís frmAlta como no modal. De esa manera me parece que podrías volver al MDIParent1 para abrir frmVentas y si volvieras a frmReportes no podrías hacer nada porque están los controles bloqueados. Eso sí, al salir de frmAlta debieras habilitar los controles de frmReporte nuevamente.
-
Yo uso el vb.net 2010.
Lo que necesito es cuando llamo a (frmReporte) y que al llamar a otro formulario desde (frmReporte) quede todo bloqueado el (frmReporte) que no tenga el focus mientras esta en uso frmAlta. Pero que no me bloquee el MDI por si quiero abrir otro formulario que no sea (frmReporte).
Saludos y gracias por responder...
Saludos !!! ;D
ENTER, hermano ya resolviste el problema?
Si no, tomando un poco la tdea de Jeronimo, resolví (creo que puedo decirlo así ::)) el dilema: cuando hagas la llamada, ejemplo:
(desde frmReporte)
frmAlta.show()
Me.Enabled = False
frmVentas.Enabled = False
Y cuando cierres frmAlta:
en el Evento FormClosing lps vuelves a habilitar.
DIOS quiera que esa sea la solución, si no seguiremos intentando...!!!
Saludos.
Manuel F. Borrego S. 8)
-
No amigo no me funciono también esa forma.
Aca prepare en VB6 como quiero y funciona de lujo, pero no se puede hacer creo de esta forma en vb.NET
https://dl.dropbox.com/s/yqifkxhlzbhgq25/EjemploMDI-vb6.rar?token_hash=AAFtzCyZxGzxWUbB1CALwk-aqPeSwfBhMB7DPdJTsNenbQ&dl=1 (https://dl.dropbox.com/s/yqifkxhlzbhgq25/EjemploMDI-vb6.rar?token_hash=AAFtzCyZxGzxWUbB1CALwk-aqPeSwfBhMB7DPdJTsNenbQ&dl=1)
Digo no se puede por que en el frmReporte puse un Label.caption = "libre", entonces cuando aprieto el boton nuevo de frmReporte cambio el texto de label1.caption="ocupado" y llamo a frmAlta.show.
Despues en frmReporte_Activate pongo:
Private Sub Form_Activate()
If Form1.Label1.Caption = "ocupado" Then
Form2.SetFocus
End If
End Sub
Pero en el vb.NET el evento activate solo funciona 1 ves no como el VB6.
-
Resuelto. como hice en VB6. Solo tenia que abrir de otra forma el frmAlta
Dim c As New frmAlta
frmAlta.MdiParent = Me.MdiParent
frmAlta.Show()
Yo estaba abriendo asi:
frmAlta.Show
Y no quedaba dentro del MDI.
Ejemplo con vb.NET solucionado.
https://dl.dropbox.com/s/en2c5y80ebod1iu/EjemploMDI.vbNET-Solucionado.rar?token_hash=AAGFsL1cKh0ltyRzhktbVILBt_p0-VN38et7mD8UGbOPRw&dl=1