2011-06-22 35 views
9

Tengo un formulario principal y me gusta abrir un formulario secundario dentro del formulario principal.¿Cómo abrir un formulario dentro de un formulario?

se puede hacer esto? En caso afirmativo, responda con código de muestra.

Gracias!

+1

¿Quiere decir simplemente abriendo el formulario secundario usando childform.ShowDialog() o añadiendo o colocando un formulario en el formulario primario ???? –

+1

@dia Me gusta colocar childform dentro del formulario principal. Si se puede hacer, responda con el código de muestra. – cmthakur

+0

Agregué la respuesta a su requerimiento .... –

Respuesta

6

siguiente es el código para hacer lo que quiere:

Supongamos que el botón 1 se encuentra en el formulario principal.

private void button1_Click(object sender, EventArgs e) 
     { 
      this.IsMdiContainer = true; 
      Form Form2 = new Form(); 
      Form2.MdiParent = this; 
      Form2.Show(); 
     } 

También el siguiente enlace le proporcionará más detalles mejor de lo que quiere hacer:

http://www.codeproject.com/KB/cs/mdiformstutorial.aspx

Espero que esto ayude ...

3

informe al formulario hijo que su MdiParent es la forma actual.

MDI:

form2 frm = new form2(); 
    frm.MdiParent = this; 
    frm.Show(); 
2

de diálogo modal:

var form = new Form1(); 
form.Parent = this; 
form.ShowDialog(); 

MDI niño:

var newMDIChild = new Form1(); 
newMDIChild.MdiParent = this; 
newMDIChild.Show(); 
+0

Para el diálogo modal, recibí un error en form.Parent = this, pero pude hacer form.ShowDialog (this) –

6

Depende de lo que entendemos por "dentro de la forma". Si necesita que se muestre el formulario hijo como control del formulario principal, supongo que podría intentar ParentForm.Controls.Add(new ChildForm()). O tal vez incluso coloque el formulario hijo en un contenedor existente en el formulario principal usando nuevamente la colección Controls del control contenedor.

HTH

+0

+1 por considerar la frase 'dentro del formulario' –

0
Form child = new Form(); 
child.MdiParent = this; 
child.Show(); 

Escribir estas líneas de código en la forma de los padres y de verificación.

4

observo que todas las respuestas Supongamos que el OP tiene la intención de utilizar la arquitectura de Formulario MDI, aunque eso nunca se menciona explícitamente.

Y hay otra manera en que un Formulario puede convertirse en un 'Niño' de otro Formulario: simplemente estableciendo su 'Propiedad de Nivel Superior' en 'Falso, y luego estableciendo su' Propiedad Principal en el otro Formulario.

Form2 f2 = new Form2(); 
f2.TopLevel = false; 
f2.Parent = someOtherForm; 
f2.Show(); 

Por cierto Creo que toda la idea de 'formas dentro de las formas' es una mala idea, y MDI arquitectura es ahora, con razón, en desuso por la EM.

Mucho mejor, creo, para hacer formas secundarias 'propiedad, y si debe tener otros recipientes dentro de un formulario, UserControls uso, paneles, etc.

+0

esta es una buena respuesta, especialmente cuando alguien está trabajando para mostrar y ocultar controles de panel múltiple. ¡Me gustó esto! – CodeIt

-2
var childform = new form2(); 
childform.TopLevel=false; 
this.Controls.add(childform); 
childform.Show(); 

Esto funciona para mí.

Cuestiones relacionadas