2011-12-26 93 views
5

我使用列表视图控件附加到图像列表以显示图像列表视图中的图像的缩略图。我添加图像从文件夹到图像列表通过使用循环和以下代码 ImageList1.Images.Add(Image.FromFile("c:\\windows\\img.bmp"));动态加载列表视图中的用户滚动在C列表视图中(图像)

但是,如果有很多图像,则会引发内存不足异常(即使在处理后)。我想要将图像加载到列表视图中,这对用户当前可见,即:以用户滚动方式动态加载图像。如果5张图像在用户视图中,我只想加载5张图像,如果用户滚动,我想获取应该当前对用户可见的图像的索引,并只加载这些图像。

请帮我解决这个问题。

回答

2

就我个人而言,我在ImageListView方面有很好的经验,无论是技术(性能)还是作者的回复(质量和速度)。

无论何时我需要视觉图像列表,我都会使用它作为ListView的替代品。

+0

Thanks.It看起来不错,让我试试看。 – techno 2011-12-27 04:01:25

+1

我添加图像列表视图引用的工具箱,在form.But中添加了一个控件时,当我使用Imagelistview1.Items.Add(myitem)我得到一个无效的引用错误Manina.Windows.Forms请帮助 – techno 2011-12-27 05:21:23

0

我非常天真的做法是扩展ImageList类,添加文件位置的集合并重写图像获取器以在第一次请求时加载文件(即,高速缓存未命中)。

否则,我希望你应该考虑处理滚动和/或渲染列表项的ListView事件。 (我假设他们存在,有一段时间没有处理UI)