PDA

Ver la Versión Completa : como usar form mdi en vb net 2005


uper
25-04-2008, 21:46:10
buenas tardes, tengo una duda de como hacer que al mostrar formularios todos aparescan dentro de la misma forma principal, en visual basic existe algo de form MDI, en vb net que codigo se usa para llamar a las formas modales.

gracias

cHackAll
25-04-2008, 22:06:53
Obviamente utilizando Add Item... en el Solution Explorer debes añadir un nuevo formulario, por otra parte al formulario padre debes definir su propiedad IsMdiContainer a True. Luego en el evento Load del mismo defines quienes serán sus hijos con FormX.MdiParent = Me

Por otra parte para mostrar un formulario en forma modal debes usar FormX.ShowDialog()

Saludos

msp_utesa
28-04-2008, 22:09:20
PARA QUE UTILICES UN FROM PRINCIPAL COMO FORMULARIO MDI, OSEA QUE SEA EL CONTENEDOR DE LOS DEMAS FORMULARIOS QUE UTILICES EN EL PROYECTO, DEBES DE HACER LO SIGUIENTE:

UNA VEZ QUE TENGAS TU FORMULARIO PRINCIPAL, DIGAMOS EL QUE CONTENDRA LOS MENU PRINCIPALES, DEBES ESTABLECERLE LA PROPIEDAD QUE SE LLAMA ISMdiContainer = true LO PUEDES VER EN LA VENTANA DE PROPIEDADES...

AHORA BIEN PARA QUE LOS DEMAS FORMS APAREZCAN DENTRO DE ESTE, A LA HORA DE LLAMAR EL OTRO FORM DEBES DE ESCRIBIRLE LO SIGUIENTE EN EL EVENTO CLICK DEL BOTON QUE ABRIRA ESE FORM (suponiendo que el segundo form se llame FrmVentas):

My.Forms.FrmVentas.MdiParent = Me
FrmVentas.Show()

PUEDES ESTABLECER LA PROPIEDAD StartPosicion = CenterParent DEL SEGUNDO FORM PARA QUE TE APAREZCA EN EL CENTRO DEL PRINCIPAL CUANDO EJECUTES LA APLICACION, Y TAMBIEN PUEDES ESTABLECER LA PROPIEDAD WindowsState = Maximized Y ControlBox = False PARA QUE TE CUBRA TODA EL AREA DEL FORMULARIO PRINCIPAL.

Y ASI VAS HACIENDO LO MISMO CON LOS DEMAS FORMS QUE CREARAS EN TU PROYECTO


ESPERO TE SIRVA.

uper
15-05-2008, 23:30:50
ya comprobe con ventanas nomodales, y aparecen dentro de mi forma principal, pero para cuando mando a llamar una modal asi:
my.forms.frmcateg.mdiparent=me
frmcateg.showdialog()

me da un error de invalidOperationexception was unhandled, en este caso para el net no se pude abrir una form modal que este dentro del form MDI principal, si solo mando a llamar frmcateg.showdialog() en la barra de tareas aparecen dos formas cuando deberia estar dentro de mi mdi, y es que algunas form si las necesito que esten en modal, se puede hacer algo alrespecto.

msp_utesa
19-05-2008, 18:10:07
Cuando llamas un form dentro de un form MDI estas diciendo que ese form estara contenido dentro del Form Principal, entonces cuando llamas un DialogForms este estara por encima de cualquier form que este visible, desabilitando los demas y estando solo el DialogForm disponible para usar, por eso no puedes llamar un Form como DialogForm si ya le dijiste a .NET que ese es un ChildForm, osea que estara dentro del principal.

Lo que debes hacer es usalo asi: form.showdialog() y si no quieres que aparezca en la barra de tareas entonces debes buscar la propiedad del form que se llama ShowInTaskbar y ponerla en false y la propiedad StartPosition ponerla en CenterScreen para que te aparezca en el centro de la pantalla y parezca que esta dentro de tu Form Principal.

Suerte.