【WinForm】Error creating window handle.创建窗口句柄时出错

问题:

先后出现两个错误

Error creating window handle.创建窗口句柄时出错。

当前程序已使用了 Window 管理器对象的系统允许的所有句柄

 

分析:

在更新数据时,会清除旧数据包含用户控件,然后重新创建控件显示数据

清除控件的代码为panel.Controls.Clear();

直接移除控件,而没有释放资源

而Windows对单个程序的句柄限制为1W

导致程序句柄不足,从而导致创建窗口句柄时出错

 

解决:

移除控件前,先释放资源

//释放资源
foreach (Control item in panel.Controls)
{
    item.Dispose();
}
//移除控件
panel.Controls.Clear();


 

你可能感兴趣的:(WinForm)