WinForms - UserControl.Dispose会在PictureBox中配置Image吗?

时间:2013-12-27 10:01:11

标签: c# .net winforms user-controls

我在其Designer文件中拥有生成代码的用户控件:

    protected override void Dispose(bool disposing)
    {            
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

用户控件包含少量带有图像的PictureBox(从磁盘和Resx文件加载)。我应该自己在用户控件的Dispose方法中处理这些图像,还是可以相信处理PictureBox组件的“components.Dispose()”还会处理当前在PictureBoxes中加载的图像?

由于

1 个答案:

答案 0 :(得分:1)

PictureBox不会自动处理加载的图像;如果你还在其他地方使用图像怎么办?同样,将Image属性设置为其他图像也不会丢弃原始图像。

可以肯定的是,这是PictureBox Dispose代码的代码:

protected override void Dispose(bool disposing)
{
  if (disposing)
    this.StopAnimate();
  base.Dispose(disposing);
}

如您所见,它不会调用image.Dispose()StopAnimate也不会调用)。你必须自己做(或让垃圾收集器为你处理)。但请确保图像不在其他任何地方使用!