Cerrar un MessageBox después de varios segundos.

Tengo una aplicación de Windows Forms VS2010 C # donde muestro un MessageBox para mostrar un mensaje.

Tengo un botón Aceptar, pero si se alejan, quiero pasar el tiempo de espera y cerrar el cuadro de mensaje después de unos 5 segundos, cerrar automáticamente el cuadro de mensaje.

Hay un cuadro de mensaje personalizado (que se hereda de un formulario) u otro formulario de reportero, pero sería interesante que no sea necesario un formulario.

¿Alguna sugerencia o muestra al respecto?

Actualizado:

Para WPF
Cerrar automáticamente el buzón de mensajes en C #

Cuadro de mensaje personalizado (usando el formulario heredado)
http://www.codeproject.com/Articles/17253/A-Custom-Message-Box

http://www.codeproject.com/Articles/327212/Custom-Message-Box-in-VC

http://tutplusplus.blogspot.com.es/2010/07/c-tutorial-create-your-own-custom.html

http://medmondson2011.wordpress.com/2010/04/07/easy-to-use-custom-c-message-box-with-a-configurable-checkbox/

Caja de mensajes desplazable
Un cuadro de mensajes desplazable en C #

Periodista de excepciones
https://stackoverflow.com/questions/49224/good-crash-reporting-library-in-c-sharp

http://www.codeproject.com/Articles/6895/A-Reusable-Flexible-Error-Reporting-Framework

Solución:

Tal vez creo que las siguientes respuestas son una buena solución, sin usar un formulario.

https://stackoverflow.com/a/14522902/206730
https://stackoverflow.com/a/14522952/206730

Respuestas a la pregunta(9)

Su respuesta a la pregunta