How to avoid flickering in TableLayoutPanel in c#.net
This worked great for me Remove flickering due to TableLayoutPanel & Panel in windows form
Here what's in that link (copied verbatim)
Completely Remove flickering due to TableLayoutPanel & Panel in windows form go as follows:=- 1. Set double buffered property of Form =true. 2. Paste Following 2 functions in form.cs
#region .. Double Buffered function .. public static void SetDoubleBuffered(System.Windows.Forms.Control c) { if (System.Windows.Forms.SystemInformation.TerminalServerSession) return; System.Reflection.PropertyInfo aProp = typeof(System.Windows.Forms.Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); aProp.SetValue(c, true, null); } #endregion #region .. code for Flucuring .. protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } } #endregion
- Call
SetDoubleBuffered(“TableLaoutPannel_controlName”)
for eachTableLayoutPannel
,Pannel
,Splitcontainer
,Datagridview
& all container controls.Thanks to RhishikeshLathe Posted 16-Feb-14 20:11pm
Suspend the layout until you've added all your controls on.
TableLayoutPanel panel = new TabelLayoutPanel();
panel.SuspendLayout();
// add controls
panel.ResumeLayout();
Also look at using Double Buffering. You'll have to create a sub-class of the TableLayoutPanel. See an example here.