ظبق پیشنهاد صحیح جناب Firoozi باید منابع را آزاد کنید . برای مثال :
private void btnDelete_Click(object sender, EventArgs e)
{
// بررسی وجود تصویر در پیکچر باکس
if (pictureBox1.Image != null)
{
// حذف تصویر از پوشه مربوطه
string imagePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory , "Images", "MyImage.jpg");
if (File.Exists(imagePath))
{
// رهایی منابع مصرفی تصویر
pictureBox1.Image.Dispose();
// حذف فایل تصویر
File.Delete(imagePath);
}
// تنظیم مقدار null برای پیکچر باکس
pictureBox1.Image = null;
}
}
در این کد، در رویداد کلیک بر روی دکمه Delete، ابتدا بررسی میشود که آیا تصویر در پیکچر باکس وجود دارد یا خیر. سپس، با استفاده از Path.Combine()، مسیر فایل تصویر را با توجه به مسیر پوشه "Images" دریافت میکنیم. در صورت وجود فایل تصویر، ابتدا منابع مصرفی تصویر با استفاده از تابع Dispose() رها میشوند و سپس فایل تصویر حذف میشود. در نهایت، مقدار null به پیکچر باکس تنظیم میشود تا تصویر حذف شده را نشان ندهد.