Don't do the clear!
Instead of drawing on your form, create a simple Panel class:
public class MyPanel : Panel
{
protected override void OnPaintBackground(PaintEventArgs e)
{
}
}
The only purpose of this is to disable background clearing.
Add the MyPanel to your form.
Now draw your ellipse on the panel, in the Paint event.
What I would do is to create a region which is the elipse:
GraphicsPath path = new GraphicsPath();
Rectangle rect = new Rectangle(0, 0, 100, 100);
path.AddEllipse(rect);
Region myClearBit = new Region();
myClearBit.MakeEmpty();
myClearBit.Union(path);
e.Graphics.ExcludeClip(myClearBit);
e.Graphics.FillRectangle(Brushes.Green,e.Graphics.ClipBounds);
e.Graphics.SetClip(myClearBit, CombineMode.Replace);
e.Graphics.FillPath(Brushes.Red, path);
This will draw a red circle on a green background, and shouldn't flicker as it re-sizes.