我有利用我在.NET应用程序的ListView一个ImageList一些问题。 在我的实现,这个ImageList中可以根据使用持有几千图像。 这个问题最初出现了,当我试图用大量图像的工作。 一旦我得到过去5K +的图像,我也陷入了一个通用的“图片不能被添加到ImageList”异常尝试添加图像。 发生这种故障,其确切的数字蹦来跳去一点点。
因此,在试图解决这个问题,我一直在努力,扩大使用本地ImageList_SetImageCount功能ImageList中的能力。 那是个好人,我的解决迫在眉睫的问题。 我不得不填充使用的ImageList [索引] =图像代替。新增()方法列表。 这一切都很好,但是,当它来到的时间拉的图像出来,这些问题蹑手蹑脚。现在,只要我在ImageList中引用的图像通过索引我得到一个内存溢出异常。 位图X = ImageList中[任何索引]将崩溃。
我试过追逐这许多不同的方式和我仍然遇到与ImageList中的问题。
在我的最后一次尝试,以进一步探讨这个问题,我总结了以下一段测试代码它仍然是表现奇!
private void Form1_Load(object sender, EventArgs e)
{
list = new ImageList();
list.ImageSize = new Size(128, 128);
list.ColorDepth = ColorDepth.Depth32Bit;
Image[] images = new Image[10];
for (int y = 0; y < 10; y++)
{
images[y] = new Bitmap(@"Path to loading_photo.png");
}
for (int x = 0; x < 750; x++)
{
list.Images.AddRange(images);
}
list.Images[12] = new Bitmap(@"Path to another.png");
最后一行与“图像不能被添加到ImageList”错误崩溃。 奇怪的是,第二回路设置为低迭代(即200总共2000张图像的被添加)它的行为就好了。
有没有在.NET上的ImageList一定的阈值,我不知道呢? 任何帮助将不胜感激。