我的最初解决方法是MDI窗口,但是有问题,我的导航条是类似VS导航条一样的,在左边,在点子窗口的时候刷的厉害,而且直接有个工具条一样的东西把我导航顶下去了,我设置了子窗口comtrolbox属性为false,不知道谁解决这个问题没.这是我控制窗口的代码:
 #region 关闭当前窗口,打开新窗口
            if (this.MdiChildren.Length > 0)
            {
                foreach (Form myFrm in this.MdiChildren)
                {
                    myFrm.Close();
                }
            }
            #endregion
            switch ()
            {
                …………………………          
            }            
        }
闪的挺厉害的。不知道谁有没解决方法,设置窗口属性什么的。
或者有没谁能有象web里那样的代码,frame那样直接弹出窗口在右边,麻烦解决下,感激,如果有这种方法,请顺便贴出代码和窗口唯一性的控制
非常谢谢

解决方案 »

  1.   

    第一做Winform,开始就遇到这个问题,郁闷
      

  2.   


            private void CloseActiveMdiChild()
            {
                Application.DoEvents();
                if (this.ActiveMdiChild != null)
                {
                    this.ActiveMdiChild.Close(); //关闭已经打开的子窗体
                  }
            }
      

  3.   

    我这个问题不是关闭窗口再打开的问题,是MDI自身的问题,可能有解决方法,只是我不知道
    这段代码#region 关闭当前窗口,打开新窗口 
                if (this.MdiChildren.Length > 0) 
                { 
                    foreach (Form myFrm in this.MdiChildren) 
                    { 
                        myFrm.Close(); 
                    } 
                } 
                #endregion 
    再开开新的是没问题的
    switch (e.Node.Name)
                {
                    case "brand":
                        Material.Brand bd = new Material.Brand();
                        bd.MdiParent = this;
                        bd.StartPosition = FormStartPosition.Manual;
                        bd.Location = new Point(0, 0);
                        bd.Show();
                        bd.WindowState = FormWindowState.Maximized;
                        break;
                    case "productinfo":
                        Material.ComMaterial cm = new Material.ComMaterial();
                        cm.MdiParent = this;
                        cm.StartPosition = FormStartPosition.Manual;
                        cm.Location = new Point(0, 0);
                        cm.Show();
                        cm.WindowState = FormWindowState.Maximized;
                        break;
                    case "weighingtype":
                        Material.WeighType wt = new Material.WeighType();
                        wt.MdiParent = this;
                        wt.StartPosition = FormStartPosition.Manual;
                        wt.Location = new Point(0, 0);
                        wt.Show();
                        wt.WindowState = FormWindowState.Maximized;
                        break;
                    case "commnature":
                        Material.ComQuality cq = new Material.ComQuality();
                        cq.MdiParent = this;
                        cq.StartPosition = FormStartPosition.Manual;
                        cq.Location = new Point(0, 0);
                        cq.Show();
                        cq.WindowState = FormWindowState.Maximized;
                        break;
                    case "commproperty":
                        Material.ComAttribute ca = new Material.ComAttribute();
                        ca.MdiParent = this;
                        ca.StartPosition = FormStartPosition.Manual;
                        ca.Location = new Point(0, 0);
                        ca.Show();
                        ca.WindowState = FormWindowState.Maximized;
                        break;
                }            
      

  4.   

    将MDI窗体加一个菜单
    在创建MDI窗体的时候直接创建MDI窗体即可