¿Cuál es la forma correcta de usar OnPaint en aplicaciones .Net?

A veces necesito una apariencia personalizada de un control. O hacer un montón de pintura personalizada. Sé que puedo hacerlo conOnPaint (ver:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.onpaint.aspx)

¿Cuál es la forma correcta de personalizar las cosas de pintura en su aplicación .net usandoOnPaint? ¿Hay alguna regla que deba tener en cuenta para mantener mi aplicación optimizada y mantener el tiempo de renderización al mínimo?

Nota: He visto, y experimentado, muchos usos ineficientes de OnPaint de vez en cuando, por lo que he creado estas preguntas y respuestas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta