Cuadro de texto con un fondo transparente

Quiero hacer a TextBox un fondo transparente c # .net Visual Studio está cometiendo un error si define Propiedades

Pon esto en el constructor:

SetStyle(ControlStyles.SupportsTransparentBackColor, true); 

La clase necesita habilitar el estilo transparente. (Por alguna razón no está soportado por defecto).

 public class MyControl : System.Windows.Forms.UserControl { public MyControl () { // Create visual controls InitializeComponent(); SetStyle(ControlStyles.SupportsTransparentBackColor, true); } } 

O si no es un control personalizado:

 mycontrolObject.SetStyle(ControlStyles.SupportsTransparentBackColor, true); 

Más sobre Control.SetStyle Method

Otros estilos de control

Esta no es una tarea fácil. El control .Net TextBox es una envoltura alrededor del control de edición de Win32, por lo que tendrá que hacer una subclasificación para lograr la transparencia de fondo.

Eche un vistazo a este ejemplo: AlphaBlendTextBox – Un cuadro de texto transparente / translúcido para .NET

He encontrado una solución para este problema, que tengo por mi cuenta. La mayor parte de lo que he leído aquí es verdad. Y los enfoques “à la” AlphaBlendTextBox son demasiado complejos o llevan mucho tiempo para algunos entornos, ya muy cargados.

Suponga que tiene un color de fondo determinado y una imagen determinada o lo que quiera ver a través del control RichTextBox . Esto es lo que he hecho (resumido):

  1. en el formulario principal, coloca la imagen, el texto, los botones o lo que sea que esté proyectado, con el color de fondo y / o la imagen adecuados
  2. Crea una nueva forma y colócala donde sea apropiado.
  3. establezca este nuevo formulario TransparencyKey en SystemColors.InactiveBorder
  4. cuide estas propiedades de borde de formulario ( FormBorderStyle a FormBorderStyle.None ; ControlBox , MinimizeBox , MaximizeBox y ShowIcon a false , TopMost a true , FormStartPosition.Manual a FormStartPosition.Manual , SizeGripStyle a SizeGripStyle.Hide ), así que no hay una estructura visible de formas
  5. crear un RichTextBox con el mismo tamaño del formulario y ubicado en su esquina superior izquierda
  6. establezca este cuadro BackColor en SystemColors.InactiveBorder (¿recuerda TransparencyKey?) y su BorderStyle en None también
  7. Cuide los contenidos de los cuadros de texto: color (es), fuente (s) y cadenas
  8. sincronice la visibilidad de este formulario con lo que necesite y … voilà! ¡Puede ver el fondo de su aplicación a través de lo que escriba y edite en el cuadro de texto!

No puedo pretender que este enfoque sea adecuado para todos, pero es mucho más sencillo que otros que he visto y, siempre que pueda mantenerlo así, prefiero las soluciones más simples.

Por supuesto, cuando cierras el formulario principal, debes ocuparte del formulario infantil, pero esto es bastante básico para ti, ¿no es así?

¡Disfrutar!