我有一个列表,我使用foreach循环来创建表单。我正试图把表格层叠起来。我一直在尝试使用MDI容器,并在满足条件时设置父窗体。我想知道是否子MDI窗体只能在父窗体内创建,而不能通过循环创建。
E.g
List<string> FormNames;
FormNames.add("Cat Group");
FormNames.add("Big Cats")
FormNames.add("Medium Cats")
FormNames.add("Small Cats")
Foreach(string Name in FormNames)
{
FormA NewForm = new FormA(Name);
if(NewForm.Name == "Cat Group") <--- This sets the ParentForm if conditions are met.
{
NewForm.IsMdiContainer = true;
NewForm.Layout(MdiLayout.Cascade);
}
else
{
NewForm.IsMdiContainer = false;
NewForm.MDIParent = <-----(what do I put here? I can't put NewForm or else it would reference itself.
}
NewForm.Show();
您只需要Form的另一个变量的帮助。在构建MDIContainer时将此变量设置为NewForm的引用,然后在创建MdiChilds 时使用它
List<string> FormNames = new List<string>();
FormNames.Add("Cat Group");
FormNames.Add("Big Cats");
FormNames.Add("Medium Cats");
FormNames.Add("Small Cats");
Form parent = null;
foreach (string Name in FormNames)
{
Form NewForm = new Form();
NewForm.Name = Name;
if (NewForm.Name == "Cat Group")
{
NewForm.IsMdiContainer = true;
parent = NewForm;
parent.LayoutMdi(MdiLayout.Cascade);
}
else
{
NewForm.IsMdiContainer = false;
NewForm.MdiParent = parent;
NewForm.Show();
}
}
parent.Show();