Implementando un RichTextBox transparente en C#

Recientemente tuve la curiosidad necesidad de crear un RichTextBox con fondo transparente, a lo que tenía entendido era un poco complicado de hacer (creo que eso fue lo que despertó mi interés en intentarlo u_u) pero hace algunas semanas me enteré de que el problema aquí no es que RichTextBox no soporte la transparencia sino que .net usa una versión antigua del control RichTextBox.

John Wood menciona que esto se puede solucionar creando un control o una clase que derive del control RichTextBox original (la cuál herederá sus miembros a nuestra clase o control) anulando la propiedad CreateParams y modificarla para cambiar el nombre de la clase de la ventana así como una parte del estilo.

El código sería algo como el siguiente:

RichEdit50

Ahora sólo faltaría cambiar las referencias System.Windows.Forms.RichTextBox por RichEdit50 (además de agregar la referencia System.Runtime.InteropServices para poder utilizar la función LoadLibray) para tener nuestro richtextbox transparente. Las siguientes dos imágenes muestran -a manera de ejemplo- los controles RichTextBox; el primero es el RichTextBox (el original) y el segundo es el control RichEdit50 derivado del primero.

System.Windows.Forms.RichTextBox

RichEdit50

Tal vez esta información resulte un poco antigua… era sólo curiosidad en el tema. :P

Fuente original (en Inglés).

1 Comment »

  1. Micky dijo,

    January 23, 2008 @ 22:00

    pss no entendi nada , pero = alo mejor cuando avance en el idioma , lo entendere

    saludos.

 

Deje su comentario, su opinión es importante.





* Me reservo el derecho de eliminar/editar comentarios con lenguaje/conductas inapropiadas. =)