(I just posted this to another thread, but it appears to be an answer to your question, so I'm reposting it here. Hope it helps...)
You can try SuspendLayout () before initializing your form and ResumeLayout () after initialization. Sometimes this doesn't work. When it doesn't, you can try using the Win32 functions:
Outside of your method:
public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
private const int WM_SETREDRAW = 11;
SendMessage(ObjectControlPanel.Handle, WM_SETREDRAW, false, 0);
SendMessage(ObjectControlPanel.Handle, WM_SETREDRAW, true, 0);
You may then need to call Refresh ().