我正在制作一个简单的游戏(对于主要部分)由一个面板组成,其中包含32个PictureBoxes的网格,每个都有一个BackgroundImage。你点击" tile"它翻转了一张照片。我的问题是,当Form Loads时,我可以看到它的绘图。我看到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不工作?我是否需要手动编写面板代码?我试图避免这种情况,因为它只是拖放到表单中显然更容易,但如果我需要,我会。
我显然不能发布截图,因为我的代表还不够高,但相信我,它看起来很可怕,我确实希望尽可能让它变得光滑。有什么想法吗?
答案 0 :(得分:0)
尝试创建无闪烁的自定义面板控件:
以下是使用此控件的步骤: 1.在C#应用程序中添加新类“NonFlickerPanel”。 2.用下面显示的C#代码替换自动生成的类代码。 3.在应用程序中使用NonFlickerPanel对象而不是Panel对象。
public partial class NonFlickerPanel : Panel
{
public NonFlickerPanel() : base()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint,
ControlStyles.UserPaint
ControlStyles.OptimizedDoubleBuffer,
true);
}
}
答案 1 :(得分:-1)
尝试使图片框不可见(.visible = false),直到它们全部加载,然后将所有图片框的可见设置为true。