I faced a problem when loading background image in the panel. It used to flicker a lot. I thought of double buffering concept. But there is no in-built double buffering property for panel.
All what I did is to write a class which inherits from Panel Class, and in the constructor set the DoubleBuffered to true and set the appropriate control styles.
VB.NET Code
Public Class DoubleBufferPanel
Inherits Panel
Public Sub New()
Me.DoubleBuffered = True
SetStyle(ControlStyles.AllPaintingInWmPaint Or _
ControlStyles.DoubleBuffer Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint, True)
UpdateStyles()
End Sub
End Class
After building the project, we should be able to see the DoubleBufferPanel component in the ToolBox.
| Double buffer Panel |
{
public DoubleBufferPanel()
{
// Set the value of the double-buffering style bits to true.
this.DoubleBuffered = true;
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint,true);
this.UpdateStyles();
}
}
How come I get a 'no source code available' tab and my application breaks?
a great thread ;) thank you sooo much!!!
Thanks for this.
You have NO IDEA of how much you've helped me out by sharing this... kudos!