MDI窗口中打开一个窗口A,A窗口中又以ShowDialog()方式打开B窗口,怎样让B窗口归属于MDI或AMDI打开A窗口没问题,加多一个A.MdiParent=this;就可以了,关键是A如何打开B才能让B窗口属于A或MDI。我的代码如下:                B sf = new B();
                sf.MdiParent = this.MdiParent;
                sf.ShowDialog();
在运行时提示:“
非顶级窗体不能显示为模式对话框。在调用 showDialog 之前应从所有父窗体中移除该窗体。”
请达人指教?

解决方案 »

  1.   

    lz:一个窗体成为另一个窗体的子窗体,不能显示:ShowDialog();
    ,只能用Show()。
      

  2.   

    open A:
    A f=new A(this);
    Open B
    private MdiForm mdi;
    public B(Mdi f)
    {
    mdi=f;
    }
    B f=new F();
    f.MdiParent = mdi;
    f.show();
      

  3.   

    在我需要ShowDialog()的效果;在B窗口关闭时要传回数据给A窗口继续处理,在B窗口关闭之前焦点不能转移。
      

  4.   

    //在A窗口中的代码:
    B sf = new B();
    if (sf.ShowDialog(this) == DialogResult.OK)
    {
        //点击了OK,请继续操作
    }