我为用户控件启用了双缓冲。我画了25x25的正方形。那些油漆就好了。
接下来我添加了一个50ms的计时器,我想每次刻度时绘制一个特定正方形的边框。每个滴答,它会稍微改变颜色。它有效。
我的问题是我遇到了一个令人讨厌的闪烁问题。
Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.SetStyle(ControlStyles.DoubleBuffer, True)
基于我的谷歌搜索,我已经打开了所有这些。然而我仍然有闪烁。我已经用尽了所有可以在互联网上找到的解决方案。有人可以帮助兄弟吗?
谢谢,
答案 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)