也就是说           // 创建此子窗体的一个新实例。
            Form childForm = new Login();
            // 在显示该窗体前使其成为此 MDI 窗体的子窗体。
            childForm.MdiParent = this;
            childForm.Text = "窗口" + childFormNumber++;
            childForm.Show();当显示这个登录窗口的时候MDI的其他功能都是不能操作的 只能登录以后他才能操作
我用了
this.Enabled = false;
但结果是什么也不能做 
谢谢

解决方案 »

  1.   

    RE:childForm.ShowDailog();
    非顶级窗体不能显示为模式对话框。在调用 showDialog 之前应从所有父窗体中移除该窗体。
      

  2.   

    把这行去掉
    childForm.MdiParent = this;
      

  3.   


    你可以使用ShowDialog显示这个窗体,但是不要把显示为模式窗体的窗体做为子窗体,而要按一般窗体处理。// 创建此子窗体的一个新实例。
    Form childForm = new Login();
    // 在显示该窗体前使其成为此 MDI 窗体的子窗体。
    //childForm.MdiParent = this;不要这一句,因为没有必要把模式窗体做为子窗体
    childForm.Text = "窗口" + childFormNumber++;
    childForm.Show();
      

  4.   

    RE:
    Form childForm = new Login();           
    childForm.ShowDialog();
    这样是可以实现模式窗口
    但是这个窗口可以移到MDI窗口的外面啊
    最大化和最小化也不是在MDI的控制之内谢谢
      

  5.   

    那这个样子不是很麻烦
    我要的只是
    MDI 窗口中打来来的 子窗口这个子窗口可以最大化最小化,但是就是当这个窗口打开的时候不能操作父窗口
      

  6.   

    C# code
    //在FORM1 按钮事件中输入以下代码:
    Form2 f2 = new Form2();
    f2.TopLevel = true; //设置F2 为顶级窗口
    f2.Owner = this; //设置拥有F2的的窗口为FORM1。
    f2.Show();
    //MSDN :引发Form.Owner异常的条件是 顶级窗口不能具有所有者。 
    //问题是:这里F2 不是设置成顶级窗口,并且F2所有者为FORM1了吗?为什么不报错误。