使用PictureBox控件时清除内存

时间:2017-04-19 13:14:53

标签: vb.net memory picturebox

我有一个TreeView,当你点击一个节点时,代码会得到节点的标签,然后在PictureBox控件中显示一张图片。点击了这么多,我得到一个控制台消息:

A first chance exception of type 'System.OutOfMemoryException' occurred in System.Drawing.dll

之后不再在PictureBox中加载图片。我尝试在加载新图像之前在PictureBox上使用Dispose,但之后图像不会显示在PictureBox中。以下代码是我正在使用的所有代码。

pbMainTools.Image = Image.FromFile(strImagePath & ".jpg")

我还使用节点中的标记从DataTable获取图像的路径:

For Each NewTool As DataRow In NTDS.Tools.Select("ToolID = " & tvTag)
     strImagePath = NewTool.Item("Image")
Next

1 个答案:

答案 0 :(得分:0)

如果您使用PictureBox.Dispose(),则会丢弃 整个控件 ,使其无法使用(因此无法显示图像的原因)。要仅处理图像,请执行以下操作:

pbMainTools.Image.Dispose()

请注意,这并不一定会阻止应用程序抛出OutOfMemoryException,因为一个原因可能是图像太大而无法将GDI +加载到内存中。