سلام آقای کهریزی
دلیل اینکه شما پس از اضافه کردن فایل ها به ListView نمی توانید آنها را حذف کنید، این است که Stream مربوط به فایل باز می ماند. حتا اگر تصویرها را هم از ImageList حذف کنید، باز هم به دلیل اینکه GarbageCollector در همان لحظه فایل را آزاد نمی کند، بنابراین نمی توانید آن را حذف نمایید.
راه بهتر استفاده از یک FileStream برای باز کردن فایل و اضافه کردن آن به ListView است. به کد زیر توجه کنید:
این دو اعلان را در سطح کلاس انجام دهید:
const string FileName = "Blue Rose.jpg";
FileStream fs;
سپس این کد را برای اضافه کردن یک فایل به ListView بنویسید: (lvImages یک شی از ListView است)
fs = new FileStream( FileName, FileMode.Open );
Bitmap img = new Bitmap( fs );
lvImages.LargeImageList = new ImageList();
lvImages.LargeImageList.Images.Add( img );
lvImages.Items.Add( "Blue Rose.jpg" );
lvImages.Items[ 0 ].ImageIndex = 0;
بسیار خوب اکنون کد حذف تصویر از ListView و حذف فایل آن:
lvImages.Items.RemoveAt( 0 );
lvImages.LargeImageList.Images.RemoveAt( 0 );
fs.Close();
File.Delete( FileName );
پیروز باشید
خدانگهدار
آریا