在父窗体中打开一个子窗体后,最大化此子窗体。无问题,此时再打开一个子窗体就报错,执行到form.show()是 提示“创建窗口句柄时出错”。

解决方案 »

  1.   

    按楼主你说的这种操作步骤测试了下,没有出现问题。如下是我打开子窗体的代码,在按钮事件里
    Form form = new Form();
    form.MdiParent = this;
    form.Show();请楼主将你打开子窗体的代码公布下,看下是否是代码上的问题
      

  2.   

    CustomerInfo CI = new CustomerInfo();
    CI.MdiParent = (Form)this.ParentForm;
    CI.StartPosition = FormStartPosition.CenterScreen;
    CI.Show();这是我的代码,获取的父窗体都没问题,
    注意我说的是我把子窗体最大化后,再打开另外的子窗体,执行到CI.show()提示“创建窗口句柄时出错”。
    有可能我前面执行了一段窗口重绘的代码,会不会造成这个问题
    代码如下
    public static void AutoScale(Form frm)
            {
                frm.Tag = frm.Width.ToString() + "," + frm.Height.ToString();
                frm.SizeChanged += new EventHandler(frm_SizeChanged);
            }        static void frm_SizeChanged(object sender, EventArgs e)
            {
                string[] tmp = ((Form)sender).Tag.ToString().Split(',');
                float width = (float)((Form)sender).Width / (float)Convert.ToInt16(tmp[0]);
                float heigth = (float)((Form)sender).Height / (float)Convert.ToInt16(tmp[1]);            ((Form)sender).Tag = ((Form)sender).Width.ToString() + "," + ((Form)sender).Height;            foreach (Control control in ((Form)sender).Controls)
                {
                    control.Scale(new SizeF(width, heigth));            }
            }