I've written a user control for that supports transparent background (among other things).  

However, I've found a problem that when the background is transparent, and you change the text of the user control, the previous text is still displayed on the screen, under the new text, making it impossible to read.  

I've been googling for half a day now, finding all sort of suggestions that didn't work in my case, most of them involving painting the parent control onto a bitmap and draw that bitmap on my control's surface.  

However, in my case the parent control is also transparent so I've tried to go up to the form's level like suggested [here](https://stackoverflow.com/questions/8453073/clear-background-of-transparent-user-control) but i was getting an InvalidArgumentException,
I've tried invalidating the parent control like suggested [here](https://stackoverflow.com/questions/798105/clearing-the-graphics-of-a-transparent-panel-c-sharp) but no luck either.

my code is basically this (truncated to the bare minimum):

```
protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x20;
        return cp;
    }
}

protected override void OnPaintBackground(PaintEventArgs e)
{
    if(this.BackColor != Color.Transparent)
    {
        base.OnPaintBackground(e);
    }
}

```