C# WinForms-是否将UserControl.Dispose也放在PictureBox中?
我有一个用户控件,其设计器文件中包含生成的代码:C# WinForms-是否将UserControl.Dispose也放在PictureBox中?,c#,.net,winforms,user-controls,C#,.net,Winforms,User Controls,我有一个用户控件,其设计器文件中包含生成的代码: protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } 用户控件包含
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
用户控件包含少量带有图像的PictureBox(从磁盘和Resx文件加载)。我应该自己在usercontrol的dispose方法中处理这些图像,还是可以相信正在处理PictureBox组件的“components.dispose()”会处理当前加载到PictureBox中的图像
谢谢PictureBox不会自动处理加载的图像;如果您还在其他地方使用该图像会怎么样?同样,将
Image
属性设置为其他图像也不会处理原始图像
当然,这是PictureBox
的Dispose
代码:
protected override void Dispose(bool disposing)
{
if (disposing)
this.StopAnimate();
base.Dispose(disposing);
}
如您所见,它不调用image.Dispose()
(也不调用StopAnimate
)。您必须自己做这件事(或者让垃圾收集器替您处理)。但是,请确保该图像未在其他任何地方使用