Not logged in - Login

Suspend redrawing of a control

Use the following code to prevent the system from redrawing a control.

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
 
private const int WM_SETREDRAW = 11;
 
public static void SuspendDrawing(Control parent)
{
   SendMessage(parent.Handle, WM_SETREDRAW, false, 0);
}
 
public static void ResumeDrawing(Control parent)
{
   SendMessage(parent.Handle, WM_SETREDRAW, true, 0);
   parent.Refresh();
}

Reference: How do I suspend painting for a control and its children