寻找加载列表视图的最佳方式,显示文件夹的缩略图

时间:2010-08-15 22:03:56

标签: c# listview getfiles

我有以下代码

files = di.GetFiles("*.jpg");
for (int i = 0; i < files.Length; i++)
{
   il.Images.Add(System.Drawing.Image.FromFile(folder + "\\" + files[i].Name));
   lv.Items.Add(files[i].Name, i);
}

代码使用jpg文件中的图片填充System.Windows.Forms.ImageList。 它还会创建一个System.Windows.Forms.ListView,其中每个项目都与图像列表中的图片相关联。

我将文件缩小并尝试优化代码。然而,我不能在3秒内获得290~30k jpg文件(或任何其他格式)。

您是否有更好的方法加载列表视图?

2 个答案:

答案 0 :(得分:4)

将代码包装在ListView的BeginUpdate / EndUpdate调用中。

答案 1 :(得分:2)

你可以做的一个简单的改变是改变这个:

folder + "\\" + files[i].Name

到此:

files[i].FullName

您也可以使用foreach循环而不是for循环:

foreach (FileInfo file in files)
{
   il.Images.Add(System.Drawing.Image.FromFile(file.FullName));
   lv.Items.Add(file.Name, i);
}

ListView可以在绑定或非绑定模式下工作。您正在使用未绑定模式。有时使用绑定模式更清晰。