0

我有以下代码

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,其中每个项目都与 imagelist 中的图片相关联。

我使文件变小并尝试优化代码。然而,对于 290 ~30k jpg 文件(或任何其他格式),我的时间不能低于 3 秒。

您有更好的方法来加载列表视图吗?

4

2 回答 2

4

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

于 2010-08-15T22:32:54.403 回答
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 可以在绑定或非绑定模式下工作。您正在使用未绑定模式。有时使用绑定模式会更干净。

于 2010-08-15T22:08:16.083 回答