WINFORM-MDI子窗体只打开一次

1.可以写一个函数MdiChildShow(Form frm)

2.如果你要打开的窗体是Form1.

Form1 frm = new Form1(frm);

this.MdiChildShow(frm);

搞定,收工!
函数代码如下:

//Mdi子窗口不能重复打开
        private void MdiChildShow(Form f)
        {
            bool isOpen = true;
            foreach (Form frm in this.MdiChildren) //遍历已打开的MDI
            {
                if (frm.Name == f.Name)
                {
                     frm.Activate(); //赋予焦点,到最前面来
                     f.WindowState = FormWindowState.Maximized; //设置窗体最大化
                    
                     isOpen = false;
                    break;
                }
            }
            if (isOpen) //如果没有找到相同窗体则打开新窗体
            {
                f.MdiParent = this; //设置父窗体
                f.Show();
            }

        }
posted @ 2014-04-28 22:40  oliverary  阅读(311)  评论(0)    收藏  举报