图形闪烁

时间:2014-10-13 04:23:27

标签: vb.net graphics flicker

我为用户控件启用了双缓冲。我画了25x25的正方形。那些油漆就好了。

接下来我添加了一个50ms的计时器,我想每次刻度时绘制一个特定正方形的边框。每个滴答,它会稍微改变颜色。它有效。

我的问题是我遇到了一个令人讨厌的闪烁问题。

    Me.SetStyle(ControlStyles.UserPaint, True)
    Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
    Me.SetStyle(ControlStyles.DoubleBuffer, True)

基于我的谷歌搜索,我已经打开了所有这些。然而我仍然有闪烁。我已经用尽了所有可以在互联网上找到的解决方案。有人可以帮助兄弟吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

我偶然发现了一个解决方案。

使用以下命令代替Object.CreateGraphics,使其无闪烁:

Dim currentContext As BufferedGraphicsContext
Dim myBuffer As BufferedGraphics
' Gets a reference to the current BufferedGraphicsContext.
currentContext = BufferedGraphicsManager.Current
' Creates a BufferedGraphics instance associated with Form1, and with  
' dimensions the same size as the drawing surface of Form1.
BufferedG = currentContext.Allocate(Me.CreateGraphics, _
playGround.DisplayRectangle)