Je crée une application Windows Forms avec C #.
J'ai un formulaire général et un panneau dessus.
Je montre le sous-formulaire dans ce panneau avec le code:
SubForm objForm= SubForm.InstanceForm();
this.IsMdiContainer = true;
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();
maintenant je veux montrer une autre forme sur le sous-formulaire de ce panneau, mais je ne sais pas comment le faire.
Je pense que votre problème résolu par ce code:
SubForm objForm= SubForm.InstanceForm();
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();
Si je comprends bien, vous êtes très proche. Pour ajouter un autre formulaire dans subform
, essayez le même code:
pnlSubSystem.Controls.Add(objForm);
use (où objForm2
est la nouvelle subForm
)
SubForm objForm2 = new SubForm();
objForm.Controls.Add(objForm2);
Puisque vous avez déjà obtenu la réponse, en supprimant this.IsMdiContainer = true;
, votre code fonctionnerait parfaitement. Parce que la propriété IsMdiContainer modifie l'affichage et le comportement du formulaire en un formulaire MDI parent. Lorsque cette propriété est définie sur true
, le formulaire affiche une zone client immergée. All MDI Les formulaires enfants affectés au formulaire parent sont affichés dans sa zone cliente.
SubForm objForm= SubForm.InstanceForm();
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();
formulaire objForm qui servira de modèle pour les formulaires enfants. Chaque fois que vous souhaitez créer une nouvelle fenêtre enfant dans votre application, vous pouvez créer une nouvelle instance de ce modèle de formulaire et définir le premier formulaire comme formulaire parent.
//Create a new instance of the MDI child template form
SubForm objForm = new SubForm();
//Set parent form for the child window
objForm.MdiParent=this; // Last ObjForm or something
//Display the child window
objForm.Show();
Autrement:
objForm.TopLevel = false;
objForm.Parent = pnlSubSystem;
objForm.Show();
Ceci est ma première réponse sur Stackoverflow.