XXXLange
07-02-2008, 22:25
Ho un problema che proprio non ce la faccio a risolvere da solo!!
Ed è il seguente: carico un oggetto Image in una PictureBox (che per completezza si trova in una User Control che viene usata in un TabControl come pagina) e quando chiudo la pagina\User Control scrivo il seguente codice:
imgFoto = null;
this.Dispose();
//dove this è proprio la pagina...
tcPagine.TabPages.Remove(tcPagine.SelectedTab);
//...e poi la rimuovo dalla collection.
Poi quando sono su un'altra pagina e cerco di sovrascrivere (File.Copy(pathFoto, true)) o cmq di eliminare (File.Delete(pathFoto)) la foto che avevo messo nell'Image (e quindi nella pagina), mi dice che la foto è attualmente in uso.
Ho anche provato a caricare una nuova foto (sempre in uscita dalla pagina):
imgFoto = (Image)Image.FromFile(Properties.Settings.Default.Path + "//Foto//Sistema//altrafoto.gif");
pbFoto.Image = imgFoto;
this.Dispose();
tcPagine.TabPages.Remove(tcPagine.SelectedTab);
Ma il risultato è sempre il medesimo, qualcuno potrebbe cortesemente consigliarmi un modo per sopperire a questo problema ovvero riuscire a liberare la memoria che non mi consente di eliminare questa benedetta foto quando lo ritengo + consono?
EDIT:
Ok, scusate il thread, ma ce l'ho fatta da solo.... in questa maniera:
if (imgFoto != null) imgFoto.Dispose();
if (pbFoto.Image != null) pbFoto.Image.Dispose();
if (this != null) this.Dispose();
ora mi fa salvare... mi sembra! Alla prossima!
Ed è il seguente: carico un oggetto Image in una PictureBox (che per completezza si trova in una User Control che viene usata in un TabControl come pagina) e quando chiudo la pagina\User Control scrivo il seguente codice:
imgFoto = null;
this.Dispose();
//dove this è proprio la pagina...
tcPagine.TabPages.Remove(tcPagine.SelectedTab);
//...e poi la rimuovo dalla collection.
Poi quando sono su un'altra pagina e cerco di sovrascrivere (File.Copy(pathFoto, true)) o cmq di eliminare (File.Delete(pathFoto)) la foto che avevo messo nell'Image (e quindi nella pagina), mi dice che la foto è attualmente in uso.
Ho anche provato a caricare una nuova foto (sempre in uscita dalla pagina):
imgFoto = (Image)Image.FromFile(Properties.Settings.Default.Path + "//Foto//Sistema//altrafoto.gif");
pbFoto.Image = imgFoto;
this.Dispose();
tcPagine.TabPages.Remove(tcPagine.SelectedTab);
Ma il risultato è sempre il medesimo, qualcuno potrebbe cortesemente consigliarmi un modo per sopperire a questo problema ovvero riuscire a liberare la memoria che non mi consente di eliminare questa benedetta foto quando lo ritengo + consono?
EDIT:
Ok, scusate il thread, ma ce l'ho fatta da solo.... in questa maniera:
if (imgFoto != null) imgFoto.Dispose();
if (pbFoto.Image != null) pbFoto.Image.Dispose();
if (this != null) this.Dispose();
ora mi fa salvare... mi sembra! Alla prossima!