(1)
            frmMDI FrmMDI = new frmMDI();
            FrmMDI.ShowDialog();我通过这样的方式打开了frmMDI窗体,可以再该窗体中进行各种操作可是我点击frmMain主窗体(打开frmMDI窗体的类)上面的按钮,却因为frmMDI打开了而无法操作想问下怎么让新打开的窗体不影响原窗体的操作?让frmMDI和frmMain都可以成为活动窗体?
(2)
另外:frmMDI我设置FormBorderStyle为Fixed3D或者FixedDialog,都可以防止鼠标在窗体边缘拖动改变窗体大小
而frmMain如此设置,却可以被拖动改变大小
两个窗体我都设置MinimizeBox和MaximizeBox为false这个好奇怪啊?

解决方案 »

  1.   

    FrmMDI.Show();
    2个窗体设置MaximumSize和MinimumSize就不会被改变大小了
      

  2.   

    谢谢楼上FrmMDI.Show()是可以了,不过我点一下frmMain,frmMDI就到下面去了怎么让frmMDI保持在frmMain上层啊?
      

  3.   

    你用了FrmMDI.ShowDialog();
    当然不可以啦
    模态显示...........
      

  4.   

    frmMDI FrmMDI = new frmMDI();
      FrmMDI.Show();
      

  5.   

            
    bool isFrmMDIOpen = false;                              //是否打开MDI窗体布尔变量
    private void btnItemMDI_Click(object sender, EventArgs e)
            {
                ButtonItem source = (ButtonItem)sender;
                frmMDI FrmMDI = new frmMDI();
                if (!source.Checked)
                {
                    source.Checked = true;
                    isFrmMDIOpen = true;                
                    FrmMDI.Show();
                }
                else if (source.Checked)
                {
                    source.Checked = false;
                    isFrmMDIOpen = false;
                    FrmMDI.Dispose();
                    //FrmMDI.close();   close()方法也不行
                }
            }一个按钮,点击一次打开该窗体,再点一次关闭可是失败了,我点击第一次的时候,按钮check属性true了,但是再点一次的时候并没有如期关闭FrmMDI,而只有按钮的check变成false,然后再按一次按钮,FrmMDI就弹出第二个了囧,则么回事啊?
      

  6.   

    if(this._IsExistChildForm("ChildForm")) 

    return; 

    ChildForm childForm= new ChildForm(); 
    childForm.MdiParent = this;  
    childForm.Show(); private bool _IsExistChildForm(string _ChildFormName) 

    foreach(Form form in this.MdiChildren) 

    if(string.Compare(form.Name, _ChildFormName, true) == 0) 

    form.BringToFront(); 
    return true; 


    return false; 

      

  7.   

    不好意思我没说清楚,我这个不是MDI子窗体的那种,就是正常的窗体(那个MDI是我的窗体名称  ^^b)