TextBox与透明背景

shl*_*omi 6 .net c# visual-studio winforms

我想做textBox一个透明背景c#.net如果你定义属性,Visual Studio会出错

Yoc*_*mer 4

将其放入构造函数中:

SetStyle(ControlStyles.SupportsTransparentBackColor, true);
Run Code Online (Sandbox Code Playgroud)

该类需要启用透明样式。(由于某种原因,默认情况下不支持)。

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

或者,如果它不是自定义控件:

mycontrolObject.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
Run Code Online (Sandbox Code Playgroud)

有关Control.SetStyle 方法的更多信息

其他控制方式

  • 这不适用于文本框。.NET TextBox 只是旧 Win32 控件的包装器,因此他需要进行某种子类化。 (2认同)
  • 即使当我对 TextBox 进行子类化时,这也不起作用。我可以成功地将 BackColor 属性设置为 Color.Transparent (它不再引发异常),但文本框实际上并不透明 - 我看不到它后面的控件。 (2认同)