frmMain为父窗体,其下子窗体frmMdiEdit、frmMdiSave两个子窗体。
其中frmMDIEdit启动后默认最大化
              frmMDIEdit edit= new frmMDIEdit ();
            foreach (Form frm in this.MdiChildren)
            {
                if (frm.Text == "编辑")
                {
                    return;
                }
            }
                edit.MdiParent = this;
                edit.WindowState = FormWindowState.Maximized;
                edit.Show();
frmMDISave设置
frmMDISave save= new frmMDISave ();
            foreach (Form frm in this.MdiChildren)
            {
                if (frm.Text == "收费管理")
                {
                    return;
                }
            }
                save.MdiParent = this;
                save.WindowState = FormWindowState.Normal;
                sfManager.Show();
frmMDISave不论怎么设置,只要frmMDIEdit最大化后(不关掉),再打开frmMDISave时,也会自动最大化。而我想要的是windowsstate=normal除非你第一个点开的是frmMDISave或其它未最大化的窗体。
如何才能达到不管你第一个打开的窗体是最大化还是最小化,都不影响我第二个窗体的normal?
不知道我说的明不明白

解决方案 »

  1.   

    我也试了一下`确实是这样`只要打开了最大化的那个~~ 再打开别的就完蛋了~全是最大化~ 这个可能跟MDI的特点有关`就像我们不能在MDI放控件一样`只要放控件了~不管弹出了哪个子窗体 不管它是什么属性`MDI里的控件最会显示在子窗体里一样`你可以试试我说的~效果是不是对~  别的可能性我还没有想出来`  关注~~~~
      

  2.   

    搞那么复杂干嘛?
    设计 Form2 时直接把 WindowState 设为 Maximized
        private void Form1_Load(object sender, EventArgs e)
            {
              
                Form2 f2 = new Form2();
                f2.MdiParent = this;
                f2.Show();
                Form3 f3 = new Form3();
                f3.MdiParent = this;
                f3.Show();
            }