Don't just load the image - the documentation does say that the file or stream must be available for the duration of the Image instance.
Instead, load it from the file, create a new image from it, and then dispose the original:
Image im = GetCopyImage(@"D:\Temp\AAAA.jpg");
myPictureBox.Image = im;
File.Delete(@"D:\Temp\AAAA.jpg");
}
private Image GetCopyImage(string path)
{
using (Image im = Image.FromFile(path))
{
Bitmap bm = new Bitmap(im);
return bm;
}
}
[edit]Where'd code block go to? - OriginalGriff[/edit]