So, I am pretty unfamiliar with windows forms development.
I'm trying to create a "hey I'm busy doing stuff" component that just spins a shape around. I want this control to be transient and draw on top of any other controls. The class inherits directly from Control.
So I have this in the constructor:
SetStyle(ControlStyles.Opaque, true);
and this:
protected override CreateParams CreateParams
{
get
{
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20;
return parms;
}
}
Which gets me a control that will draw on top of other controls.
Now my problem is this. I repaint the control a few times a second to give the appearane of a smooth animation. However, I can't figure out how to clear what was drawn in the previous frame. Using e.Graphics.Clear(Color.Transparent)
in OnPaint
turns the whole control black.
Is there a way to just clear the drawn contents of a control?
I've noticed that Resizing the the control will clear the background.
Things that Don't Work
- Overriding OnPaintBackground to do nothing. Or just calling base.OnPaintBackground. Same results.