我在子窗口中有一个按钮,想实现点击这个按钮后出现一个新窗口,这个新窗口也要是主窗口的子窗口。
我把主窗口作为参数传入子窗口,然后在处理点击按钮的函数中新建了窗口,将这个窗口的MdiParent设为主窗口,可是运行时出错。请问哪位大侠有一个好点的解决方案。另外,我想问下,如果子窗口中做出了某些动作想让主窗口捕获并进行处理,这个应该用什么样的解决方式啊?请务必提供示例代码,谢谢~
代码如下
1.主窗口中建立子窗口
 private void XXX_Click(object sender, EventArgs e)
        {
            ChildForm childForm = new ChildForm(this);
            childForm.MdiParent = this;
            childForm.Show();
        }
2.子窗口中点击某个按钮
        private void XXX_Click(object sender, EventArgs e)
        {
            picture = new PictureForm();
            picture.MdiParent = this.mdi;
            picture.Show();
        }
这样做运行时提示:
未处理的“System.OutOfMemoryException”类型的异常出现在 System.Windows.Forms.dll 中。
其他信息: 创建窗口句柄时出错。

解决方案 »

  1.   

    这样就可以了,你那么写编译都不会通过的!怎么能运行?
    首先设置主窗体的IsMdiContainer=true,然后按钮的代码:            ChildForm childForm = new ChildForm();
                childForm.MdiParent = this;
                childForm.Show();
    ChildForm按钮的代码:picture = new PictureForm();
      picture.MdiParent = this.MdiParent;
      picture.Show();
      

  2.   

    我的也是2008,都是正常的,如果还是报错,估计是你的VS2008有问题了。
    试试看重启机器后,新建一个WinForm项目能正常运行起来吗?