在visual studio 2005中 执行下面的程序:
           编译可以通过,运行也不出错。
           只是一直运行2-3个小时就报错:(是在频繁的调用代码的情况下)
           未处理的“System.ComponentModel.Win32Exception”类型的异常出现在 System.Windows.Forms.dll 中。其他信息: 创建窗口句柄时出错。           代码:
            MainForm.ControlAll.Controls.Clear();     
            MainForm.ControlAll.SuspendLayout();
            NIT nit = new NIT();
            nit.Width = MainForm.ControlAll.Width;
            nit.Height = MainForm.ControlAll.Height;
            MainForm.ControlAll.Controls.Add(nit);   ←// 出错位置
            MainForm.NotePanelAll.Text = "NIT";
            MainForm.ControlAll.ResumeLayout();
            MainForm.ControlAll.Parent.ResumeLayout();            MainForm.ControlAll声明的一个静态的容器。
            nit是一个用户控件。             先谢了。

解决方案 »

  1.   

    从这些好像看不出什么问题,会不会NIT里面内存管理有问题?比如释放不干净?
      

  2.   

    看不出来问题。有没有inner Exception?还有把Stacktrace贴出来吧
      

  3.   

    MainForm.ControlAll.Controls.Clear(); 
    能不能把容器里面的东西,都释放了吗?
      

  4.   

    MainForm.ControlAll.Controls.Add(nit);
    最好不要用静态的,建议用代理写一个MainForm的自定义事件,这个进程向MainForm发送一个事件,通知MainForm来clear容器
    还有,最好可以监控一下你的内存,有可能是内存问题
    如果不是太紧要的话,试试断点调试状态下运行程序,