我有以下代码
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文件(或任何其他格式)。
您是否有更好的方法加载列表视图?
答案 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可以在绑定或非绑定模式下工作。您正在使用未绑定模式。有时使用绑定模式更清晰。