日期:2014-05-19  浏览次数:20876 次

C#中出现了一个问题,就是程序主窗体已经打开,在调用子窗体时候出现了创建窗口句柄时出错。
小弟运行程序的时候遇到一个问题,请大家帮忙看看!程序主窗体已经打开,在调用子窗体时候出现了“未处理的System.OutOfMemoryException”类型的异常出现在   system.windows.forms.dll   中。其他信息:   创建窗口句柄时出错。”请大家帮忙指导一下,看看怎么解决!
    private   void   MenuItemPeopleManage_Click(object   sender,   System.EventArgs   e)
    {
      if(   GetInstanceState(   "frmPeopleManage "   )   )
      {
        return;
      }
      frmPeopleManage   childFrm   =   new   frmPeopleManage();
      childFrm.MdiParent   =this;
      childFrm.Show();
    }//这里有一个错误。错误的提示是“未处理的“System.OutOfMemoryException”类型的异常

代码全文在我的博客里   大家帮忙看看http://blog.csdn.net/yili2002/


------解决方案--------------------
private void GetInstanceState(Type type)
{
foreach(Form frm in this.MdiChildren )
{
if(frm.GetType() == type)
{
frm.Activate();
break;
}
else
{
Form nfrm = (Form)System.Activator.CreateInstance(type);
nfrm.MdiParent=this;
nfrm.Show();
}
}
}

private void MenuItemDepInfo_Click(object sender, System.EventArgs e)
{
GetInstanceState(typeof(frmDepInfo));
}
private void MenuItemPeopleManage_Click(object sender, System.EventArgs e)
{
GetInstanceState(typeof(frmPeopleManage));
}