Don't just do the re-draw in the Paint event, do all drawing there. Call the Invalidate method of the control when it needs to be redrawn. Make sure to use the Graphics object that is supplied in the EventArgs for the event, and not create your own. The supplied Graphics object is clipped to the area that should be redrawn, if you create a new one it won't be clipped, and you might draw on top of someone elses window.
--- b { font-weight: normal; }