C#中 Graphics对象调用Dispose()方法后,为什么窗体绘制的图像还在?Dispose()方法不是已经将Graphics对象清除了吗?
请大虾根据这个问题,详细解释下原理,谢谢。
Graphics objGraphics = null ;
objGraphics = this.CreateGraphics();
objGraphics.Clear(SystemColors.Control);
objGraphics.DrawRectangle(Pens.Blue,a.Left-1,a.Top-1,a.Width+1,a.Height+1);
objGraphics.Dispose();//执行完这句后,为什么绘制的图像还在?
请大虾根据这个问题,详细解释下原理,谢谢。
Graphics objGraphics = null ;
objGraphics = this.CreateGraphics();
objGraphics.Clear(SystemColors.Control);
objGraphics.DrawRectangle(Pens.Blue,a.Left-1,a.Top-1,a.Width+1,a.Height+1);
objGraphics.Dispose();//执行完这句后,为什么绘制的图像还在?
用using试试
using (Graphics objGraphics = this.CreateGraphics)
{
//其它代码
}或者用个trycatch。finallytry
{}
catch()
{}
finally
{
if(objGraphics != null)
((IDisposable)objGraphics).Dispose();
}
objGraphics = this.CreateGraphics();
objGraphics.Clear(SystemColors.Control);
objGraphics.DrawRectangle(Pens.Blue,a.Left-1,a.Top-1,a.Width+1,a.Height+1);
objGraphics.Dispose();//执行完这句后,为什么绘制的图像还在?
this.invlaidate()
其实我主要想知道Dispose()方法为什么对Graphics对象没有影响,矩形是在Graphics对象里存储的,为什么释放资源了,显示器上的图像还在