我在其Designer文件中拥有生成代码的用户控件:
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
用户控件包含少量带有图像的PictureBox(从磁盘和Resx文件加载)。我应该自己在用户控件的Dispose方法中处理这些图像,还是可以相信处理PictureBox组件的“components.Dispose()”还会处理当前在PictureBoxes中加载的图像?
由于
答案 0 :(得分:1)
PictureBox不会自动处理加载的图像;如果你还在其他地方使用图像怎么办?同样,将Image
属性设置为其他图像也不会丢弃原始图像。
可以肯定的是,这是PictureBox
Dispose
代码的代码:
protected override void Dispose(bool disposing)
{
if (disposing)
this.StopAnimate();
base.Dispose(disposing);
}
如您所见,它不会调用image.Dispose()
(StopAnimate
也不会调用)。你必须自己做(或让垃圾收集器为你处理)。但请确保图像不在其他任何地方使用!