It would be helpful if you posted the code that causes your form to flicker.
without that this is the most general solution I can think of (except for turning off your monitor :0)):
Try using the answer suggested in this SO thread.
Basically you need to:
Create the following class:
class DrawingControl
{
[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();
}
}
In your form add a call before the flickering to SuspendDrawing
and after it to ResumeDrawing
Something like:
public void MyFlickeringFunction()
{
try
{
SuspendDrawing(this);
/*Your code goes here...*/
}
finally
{
ResumeDrawing(this)
}
}