Yes, we have a custom implemetation of OnPaint that calls our OnRender method instead to provide extended double buffering. But if you want to do custom painting, you should do it in a renderer class for TabStrip. The renderer draws/measures every portion of a TabStrip and allows you to make a completely custom looking one if you desire. Renderers can be set to the TabStrip.Renderer property.