GDI +撕裂! VB.NET

时间:2011-09-18 18:47:40

标签: vb.net gdi+

我有Graphic对象的问题。我有一个循环,它通过一些数组,它从他们获取图像,并在图片框上绘制它们。一切都很好但是当我尝试调整大小或绘制另一个更重的东西时,每件事都开始闪烁就像他们在画画时一样。我知道它太沉重了,无法画出那些该死的东西!但有没有办法避免撕裂?

感谢。

修改

我的代码:

graphic.Clear(frmmain.Workspace.BackColor)
For i = 0 To mObjectsList.Count - 1
  graphic.DrawImage(mObjectsList(i).oGraphic, mObjectsList(i).oX, mObjectsList(i).oY, mObjectsList(i).oWidth, mObjectsList(i).oHeight)
Next

1 个答案:

答案 0 :(得分:3)

  

graphic是一个变量,我是从我的图片框图形对象

创建的

图片框没有Graphic对象。 使用其CreateGraphics()方法。无论你通过什么画在屏幕上的时间只有几分之一秒,几乎没有昙花一现。改为使用Paint事件处理程序中的e.Graphics。这将吸引双缓冲位图。 PictureBox始终将其DoubleBuffered属性设置为true。当Paint事件完成时,将绘制该位图。这就是为什么你的对象闪烁,它们会被那个位图再次透支。