para esto deberias usar MemoryStream, ya que como la imagen esta usada al momento de hacer
picture.imagen = imagen no puedes modificarla, eliminarla, etc.
Ejemplo
Código C#:
Ver originalpublic void getFoto(PictureBox pbFoto)
{
OpenFileDialog OpenFile = new OpenFileDialog();
IO.Stream Mem = null;
string name = "";
try
{
OpenFile.InitialDirectory = "C:\\Images\\";
OpenFile.Filter = "Imágenes JPG (*.jpg)|*.jpg| " +
"Imagenes Fireworks (*.png)|*.png|" +
"Mapas de bits (*.bmp)|*.bmp|" +
"Todos Los Archivos|*.*";
OpenFile.FilterIndex = 1;
if(OpenFile.ShowDialog() == DialogResult.OK){
if(System.IO.File.Exists(OpenFile.FileName)){
Mem = OpenFile.OpenFile();
pbFoto.Imagen = null;
pbFoto.Image = Image.FromStream(Mem, True, True);
pbFoto.SizeMode = PictureBoxSizeMode.StretchImage;
pbFoto.Refresh();
}
}
}catch(Exception e)
{
OpenFile.Dispose();
if(Mem!=null)Mem.Close();
}
}