To prevent lots of flicker during resizing disable the real-time resizing of the child controls.
To do so override both the Form OnResizeBegin and OnResizeEnd events.
protected override void OnResizeBegin(EventArgs e)
{
SuspendLayout();
base.OnResizeBegin(e);
}
protected override void OnResizeEnd(EventArgs e)
{
ResumeLayout();
base.OnResizeEnd(e);
}