ListViewを使用してイメージファイルのサムネイルを読み込んで表示しています。各ListViewItemに使用している「名前」またはキーは、完全修飾ファイル名です。ListView <--> ImageListが同期しない
同じキーを使用してファイルのサムネイルを読み込むImageListも作成しました。このImageListをListViewの "SmallImageList"プロパティとして割り当てました。
ファイルを追加したり削除したりするときに、をListwise.ItemsコレクションとImageList.Imagesコレクションのキーで追加して削除します。
多くの画像を読み込むときは、このすべてが問題なく動作します。しかし、特定のキーを削除しようとすると、ListViewコントロールはサムネイルを適切に表示しなくなります。前とアイテムを削除した後
:
Iデバッグ中にメモリの両方のコレクション配列を解析する場合、キーは完全に並びます。
コードを使用:
// 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);
}
コードをインデックスベースのキーに変換したところ、まったく同じ問題が発生しています。 –
イメージを削除してアイテムポイントを正しいインデックスに保つソリューションについては、この記事を参照してください(http://stackoverflow.com/questions/39916598/removing-listviewitem-with-image-from-listview/39920779#39920779) – TaW