落魄joker  
why so serious

这两天在研究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        }

 

posted on 2008-12-22 12:05  bravecheese  阅读(375)  评论(0编辑  收藏  举报