C# 如何删除在C中设置为图片框背景图像的图像#
我有一个C#win表单应用程序,它将一个新的image=设置为一个文件中的图像。像这样:C# 如何删除在C中设置为图片框背景图像的图像#,c#,C#,我有一个C#win表单应用程序,它将一个新的image=设置为一个文件中的图像。像这样: var displayPicture = Image.fromFile(/*path*/); PicBoxPictureDisplay.BackgroundImage = displayPicture; 但当我用以下方法删除它时: File.Delete(/*path*/); 我得到:“进程无法访问文件[在.FromFile中使用的文件名] 如何删除.FromFile图像 编辑:以下方法失败 PicBo
var displayPicture = Image.fromFile(/*path*/);
PicBoxPictureDisplay.BackgroundImage = displayPicture;
但当我用以下方法删除它时:
File.Delete(/*path*/);
我得到:“进程无法访问文件[在.FromFile中使用的文件名]
如何删除.FromFile图像
编辑:以下方法失败
如前所述,您需要处理对象。具体来说,您需要在
背景图像上调用dispose()
:
PicBoxPictureDisplay.BackgroundImage.Dispose();
System.IO.File.Delete("test.png");
这样,文件上的锁将被重新实现,您可以删除它
设置PicBoxPictureDisplay.BackgroundImage=null;
没有帮助,因为它不会从内存中删除加载后的对象。它只会删除对该对象的引用。锁仍将保留。在删除文件之前,您应该处理displayPicture对象。请解释一下您的操作(为什么要这样做)?您应该将其作为图片框中的背景删除,并明确删除对其的引用(处置保存该图像的对象)。@IkramTurgunbaev我已尝试displayPicture.dispose();仍然失败。@SeM我想删除我为displayImageI设置的图像。我尝试了,仍然失败。那么问题不是由您发布的代码引起的。因为使用您发布的代码,我的解决方案可以工作。我刚刚测试了它。是否有其他进程正在使用此文件?您是否在其他任何地方将其用作背景图像?不,我不知道f、 唯一不同的是,我使用它来获取文件路径:public string GetFilePath(string fileName){string path=“”;var pathToReturn=new FileInfo(fileName);path=pathToReturn.FullName;return path;}