ListViewを使用して、画像ファイルのサムネイルを読み込んで表示しています。各ListViewItemに使用している「名前」またはキーは、完全修飾ファイル名です。
同じキーを使用してこれらのファイルのサムネイルをロードするImageListも作成しました。このImageListをListViewの「SmallImageList」プロパティとして割り当てました。
ファイルを追加および削除するときは、ListView.ItemsコレクションとImageList.Imagesコレクションの両方からキーでファイルを追加および削除します。
多くの画像をロードする場合、これはすべて正常に機能します。ただし、特定のキーを削除しようとすると、ListViewコントロールにサムネイルが正しく表示されなくなります。
アイテムを削除する前後:
デバッグ中にメモリ内の両方のコレクション配列を分析すると、キーが完全に整列します。
使用したコード:
// 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);
}