The only point I want to mention to your code is: Dont forget to dispose the pens and brushes befoe the method is leaved. This is very necessary in any drawing cycles to dispose the drawing objects every time.

Why do you need to pint background yourself instead of using the existing background property ?