具有透明背景的文本框

本文关键字:文本 背景 透明 | 更新日期: 2023-09-27 17:48:58

我想把textBox设置为c# .net透明背景如果你定义了属性

具有透明背景的文本框

, Visual Studio就会出错

把这个放到构造函数中:

SetStyle(ControlStyles.SupportsTransparentBackColor, true);

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

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

如果不是自定义控件:

mycontrolObject.SetStyle(ControlStyles.SupportsTransparentBackColor, true);

关于控制的更多信息。SetStyle方法

其他控件样式

这不是一件容易的事。. net TextBox控件是Win32 Edit控件的包装器,所以你需要做子类化来实现背景透明度。

AlphaBlendTextBox——一个。net的透明/半透明文本框

我已经找到了解决这个问题的方法,这是我自己的方法。我在这里读到的大部分都是真的。对于一些已经收费很高的环境来说,方法" la"AlphaBlendTextBox太复杂或太耗时。

假设你有一个给定的背景颜色和一个给定的图片或任何你想通过RichTextBox控件看到的。这是我所做的(总结):

  1. 在主窗体上,您可以放置图片、文本、按钮或任何投影,并使用适当的背景颜色和/或图片
  2. 创建一个新表单并将其放置在合适的位置
  3. 设置TransparencyKeySystemColors.InactiveBorder
  4. 处理这个表单的边界属性(FormBorderStyleFormBorderStyle.None;ControlBox, MinimizeBox, MaximizeBoxShowIconfalse, TopMosttrue, StartPositionFormStartPosition.Manual, SizeGripStyleSizeGripStyle.Hide),所以没有可见的形式结构
  5. 创建一个RichTextBox,大小相同,位于左上角
  6. 将此框BackColor设置为SystemColors.InactiveBorder(还记得透明键吗?)并且BorderStyle也为None
  7. 处理文本框内容:颜色,字体和字符串
  8. 同步这个表单的可见性与任何你需要和…瞧!你可以看到你的应用程序背景通过任何你写和编辑的文本框!

我不能假装这种方法适合每个人,但它比我见过的其他方法简单得多,只要我能保持这种方式,我确实更喜欢更简单的解决方案。

当然,当您关闭主窗体时,您必须处理子窗体,但这对您来说是非常基本的,不是吗?

享受吧!