【发布时间】:2015-06-27 20:52:12
【问题描述】:
我正在制作一个简单的游戏,它(主要部分)由一个面板组成,里面有一个由 32 个图片框组成的网格,每个图片框都有一个背景图像。您单击“图块”,它会翻转显示图片。我的问题是,当表单加载时,我可以看到它在绘制。我看到 Panel .. 然后清空 PictureBoxes,最后它用 BackgroundImages 填充 PictureBoxes。
我已将表单的 DoubleBuffer 设置为 True,并且还添加了以下内容:
Private Sub UseDoubleBuffer()
Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or ControlStyles.DoubleBuffer, True)
Me.UpdateStyles()
End Sub
我在表单加载时调用。我不确定我还能做什么?我希望它只是“弹出”到屏幕上。为什么 DoubleBuffer 不工作?我需要手动对面板进行编码吗?我试图避免这种情况,因为拖放到表单中显然更容易,但如果需要,我会这样做。
我显然不能发布屏幕截图,因为我的声望还不够高,但相信我,它看起来很丑陋,我确实想尽可能地让它变得时尚。有什么想法吗?
【问题讨论】:
-
我认为这里已经回答了这个问题:[How do I disable update a form in Windows Forms][1] [1]: stackoverflow.com/questions/126876/…
-
您分配给 BackgroundImage 属性的图像太大,调整它的大小以适应小图片框需要太长时间。所以你会看到他们被一张一张地画出来。使用适合的绘画程序创建一个更好的程序。如果仍然需要太长时间(不应该),那么您可以使用this hack。
标签: vb.net visual-studio-2013 graphics panel flicker