C# 关于"GDI+ 中发生一般性错误。"的问题
最近在调试程序的时候,不时出现"GDI+ 中发生一般性错误。"这个问题,先把相关代码弄上来。
下面这个程序主要是用来在Treeview控件中根据扩展名获取文件图标,然后生成树形目录,类似于资源管理器的功能
foreach (string ListDetail in ls)//ls为文件名列表
{
if (ListDetail != "")//如果文件名不为空
{
TreeNode tn2 = tn1.Nodes.Add(ListDetail);//建立一个节点
string filetype;//文件扩展名
int exIndex = ListDetail.LastIndexOf('.');
if (exIndex < 0)
{
filetype = null;
}
else
{
filetype = ListDetail.Substring(exIndex, ListDetail.Length - exIndex);//得到文件扩展名
}
Icon icon = GetIconByFileType(filetype, false);//这个函数用来获取文件图标
Image image = icon.ToBitmap();//文件图标保存到image
imageList1.Images.Add(image);//image添加到ImageList控件
tn2.ImageIndex = imageList1.Images.Count - 1;//节点图标索引
tn2.SelectedImageIndex = imageList1.Images.Count - 1;//选定节点的图标索引
image.Dispose();//释放
}
}
上面就是主要代码,当执行到Image image = icon.ToBitmap() 出现这个问题,但是这个问题不是一定会发生的,是时不时会发生,当我点击多个目录节点就可能会出现这个问题,跟节点目录没有关系,跟文件扩展名也没有太大的关系,没有规律性,大家帮忙看下有办法解决吗,可能是哪里的问题,有不明白的地方我再解释一下,谢谢大家啦!