내 프로그램에서 ListView
을 동적으로 변경하려고합니다. 모든 항목은 ImageKey
이며, 나는 SmallImageList
을 사용합니다.ListView에서 이미지로 ListViewItem 제거
이
코드 사용 : 전에하고 항목을 삭제 한 후
:
문제는 내가 항목, 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
의 항목을 추가하므로 내 요구 사항을 충족시키지 않으므로 Image
을 SmallImageList.Images
개 이상 얻으므로 ImageKey
이됩니다. 이미지가 일치하지 않게됩니다. 또한 대답은 명백한 메모리 누수를 무시합니다.
ImageIndex 속성을 사용하지 않습니다. 내 질문에 언급 한대로 이미 ImageKey를 사용합니다. – farukdgn
죄송합니다. 질문을 잘못 읽었습니다. 그러나 왜 당신은 중복을 얻을 것입니까 ??? – TaW
예를 들어 ImageKey = "a"인 항목을 제거합니다. 그런 다음 어느 시점에서 ImageKey = "a"로 새 항목을 추가합니다. 그러나 "a"에 대한 또 다른 이미지를 추가하여 중복됩니다. – farukdgn