我有一个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
答案 0 :(得分:0)
如果您使用PictureBox.Dispose()
,则会丢弃 整个控件 ,使其无法使用(因此无法显示图像的原因)。要仅处理图像,请执行以下操作:
pbMainTools.Image.Dispose()
请注意,这并不一定会阻止应用程序抛出OutOfMemoryException
,因为一个原因可能是图像太大而无法将GDI +加载到内存中。