El objeto Graphics encapsula funcionalidades del HDC de la api de windows. Es decir determina donde se dibujará, maneja los objetos para dibujar, las funciones para dibujar, etc. Pero lo que no tiene es una MEMORIA PROPIA para dibujar. Necesitas un objeto bitmap para tener un pedazo de memoria reservado donde dibujar y que nadie más le meta mano.
this.SetStyle(ControlStyles.Opaque | ControlStyles.AllPaintingInWmPaint,true);