这两天在研究Winform,遇到了这个问题。解决方法想明白之后发现很简单
只需要加入一个bool值就可以实现控制了。
1 private static void openChildrenWindow(Form ParentForm, Form ChildrenForm)
2 {
3
4 bool Flag = false;
5 Form[] CForm = ParentForm.MdiChildren;
6
7 foreach (Form ff in CForm)
8 {
9 //如果同名的子窗体已经存在那么Flag=ture并将子窗体激活,之后if判断中的ChildrenForm.Show()也就不会再次执行了。
10 if (ff.Name==ChildrenForm.Name)
11 {
12 Flag = true;
13 ff.Activate();
14 ff.Size = ParentForm.Size;
15 ff.WindowState = FormWindowState.Normal;
16 break;
17
18 }
19 }
20 if (Flag == false)
21 {
22 ChildrenForm.MdiParent = ParentForm;
23 ChildrenForm.WindowState = FormWindowState.Normal;
24 ChildrenForm.Show();
25 }
26
27 }
2 {
3
4 bool Flag = false;
5 Form[] CForm = ParentForm.MdiChildren;
6
7 foreach (Form ff in CForm)
8 {
9 //如果同名的子窗体已经存在那么Flag=ture并将子窗体激活,之后if判断中的ChildrenForm.Show()也就不会再次执行了。
10 if (ff.Name==ChildrenForm.Name)
11 {
12 Flag = true;
13 ff.Activate();
14 ff.Size = ParentForm.Size;
15 ff.WindowState = FormWindowState.Normal;
16 break;
17
18 }
19 }
20 if (Flag == false)
21 {
22 ChildrenForm.MdiParent = ParentForm;
23 ChildrenForm.WindowState = FormWindowState.Normal;
24 ChildrenForm.Show();
25 }
26
27 }