Comment ouvrir un formulaire dans un formulaire?

J’ai un formulaire parent et j’aime ouvrir un formulaire enfant dans le formulaire parent.

Cela peut-il être fait? Si oui, répondez-moi avec un exemple de code.

Merci !

Voici le code pour faire ce que vous voulez:

Supposons que button1 se trouve dans le formulaire parent.

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

De plus, le lien suivant vous fournira davantage de détails sur ce que vous voulez faire:

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

J’espère que cela t’aides…

Cela dépend de ce que vous entendez par “dans le formulaire”. Si vous avez besoin d’afficher le formulaire enfant en tant que contrôle du formulaire parent, vous pouvez essayer ParentForm.Controls.Add(new ChildForm()) . Ou peut-être même placer le formulaire enfant dans un conteneur existant du formulaire parent en utilisant à nouveau la collection Controls du contrôle contenant.

HTH

Je remarque que toutes les réponses ici supposent que le PO envisage d’utiliser l’architecture de formulaire MDI , bien que cela ne soit jamais explicitement indiqué.

Et il existe une autre manière de transformer un formulaire en “enfant” d’un autre formulaire: il suffit de définir sa propriété TopLevel sur “False”, puis de définir sa propriété “Parent” sur l’autre formulaire.

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

En passant, je pense que l’idée même de «Forms into Forms» est une mauvaise idée , et l’architecture MDI est maintenant, à juste titre, obsolète par MS.

Je pense qu’il est bien mieux de créer des formulaires secondaires appartenant à des propriétaires et, si vous devez avoir d’autres conteneurs dans un formulaire, utilisez UserControls, Panels, etc.

informer la fiche enfant que son MdiParent est la forme actuelle.

MDI:

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

Dialogue modal:

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

Enfant MDI:

 var newMDIChild = new Form1(); newMDIChild.MdiParent = this; newMDIChild.Show(); 
 Form child = new Form(); child.MdiParent = this; child.Show(); 

Écrivez ces lignes de code sous forme parentale et cochez.

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

Cela fonctionne pour moi.