【发布时间】:2016-10-07 11:52:01
【问题描述】:
我正在尝试在我的程序中动态更改ListView。每个项目都有一个ImageKey,我为它们使用SmallImageList。
问题是每当我删除一个项目时,就会出现this question中提到的问题:
删除项目前后:
使用的代码:
// Add the images from an array of paths foreach (string xFile in files) { thumbnails_imageList.Images.Add(xFile, images[xFile]); files_lst.Items.Add(xFile, Path.GetFileNameWithoutExtension(xFile), xFile); } // Delete the selected key(s) foreach (ListViewItem xItem in files_lst.SelectedItems) { files_lst.Items.Remove(xItem); thumbnails_imageList.Images.RemoveByKey(xItem.Name); }
问题中的答案(建议不要从ImageList 中删除图像)不符合我的要求,因为我在删除后添加了具有相同ImageKey 的项目,因此在Images 中添加了多个SmallImageList.Images 得到相同的ImageKey,因此图像变得不一致。答案也忽略了明显的内存泄漏。
【问题讨论】: