Folgendes Problemchen: Ich habe eine Funktion, die ein Bild lädt:
Code:
private void btnLoadImage_Click(object sender, EventArgs e)
{
String basedir = FW.Instance.SysParams["Stammdaten.Pfade.Bilder"].Value;
dlgOpenFile.InitialDirectory = basedir;
if (dlgOpenFile.ShowDialog() == DialogResult.OK
&& Path.GetDirectoryName(dlgOpenFile.FileName) == basedir)
{
edFilename.Text = Path.GetFileName(dlgOpenFile.FileName);
_image = new Bitmap(dlgOpenFile.FileName);
btnPreview.Enabled = true;
}
}
private void btnPreview_Click(object sender, EventArgs e)
{
LabelPreviewHelper.ShowPreview(_image);
}
Letztere macht nix anderes, als das Image auf ein Formular zu patschen und es anzuzeigen.
Problematisch ist nun, dass das die Datei komplett blockiert. Will heissen selbst wenn ich da aufräume und das Image explizit freigebe, kann ich die Datei dennoch nicht umbennenen oder gar löschen, bis ich die Anwendung beende. Das finde ich etwas doof. Spätestens nachdem ich das Formular schliesse sollte die Datei wieder freigegeben werden. Was muss ich da noch machen?