//查询子窗体是否存在
        public bool checkchildfrm(string childfrmname)
        {
            foreach (Form childFrm in this.MdiChildren)
            {
                if (childFrm.Name == childfrmname)
                {
                    if (childFrm.WindowState == FormWindowState.Minimized)
                        childFrm.WindowState = FormWindowState.Normal;
                    childFrm.Activate();
                    return true;
                }
            }
            return false;
        } case "1":
                    {
                        if (this.checkchildfrm("Frm_patient") == true)
                            return;
                        Frm_patient frm = new Frm_patient();
                        frm.MdiParent = this;
                        frm.Show();
                        break;
                    }
这个是把一个窗体作为其他子窗体容器的部分代码。
那个forearm有什么用啊。我单步调试每次都不会进到forearm里去。还有下面的if(true) return;是不是和if(true){}else{}一样的意思

解决方案 »

  1.   

    foreach (Form childFrm in this.MdiChildren)
    等同于循环访问MdiChildren集合中的每一个对象if(true) 
    return;
    dosomething;等同于
    if(true)
    {
    return;
    }
    else
    {
    dosomething;
    }
      

  2.   

    可是我把整个foreach删掉。运行也没有什么区别啊
      

  3.   

    foreach的作用在于把所有最小化的子窗体,恢复,
      

  4.   

    childFrm.Activate();
                        return true;
    在这两条语句上设置断点
      

  5.   

    试过了。直接跳过。不运行foreach里的代码。还是不懂有什么用
      

  6.   

    因为你没有子窗口,所以foreach块内的东西不会执行,MdiChildren的内容为空时foreach不会执行