具有透明背景的文本框
本文关键字:文本 背景 透明 | 更新日期: 2023-09-27 17:48:58
我想把textBox设置为c# .net透明背景如果你定义了属性
把这个放到构造函数中:
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的透明/半透明文本框我已经找到了解决这个问题的方法,这是我自己的方法。我在这里读到的大部分都是真的。对于一些已经收费很高的环境来说,方法"AlphaBlendTextBox
太复杂或太耗时。
假设你有一个给定的背景颜色和一个给定的图片或任何你想通过RichTextBox
控件看到的。这是我所做的(总结):
- 在主窗体上,您可以放置图片、文本、按钮或任何投影,并使用适当的背景颜色和/或图片
- 创建一个新表单并将其放置在合适的位置
- 设置
TransparencyKey
为SystemColors.InactiveBorder
- 处理这个表单的边界属性(
FormBorderStyle
到FormBorderStyle.None
;ControlBox
,MinimizeBox
,MaximizeBox
和ShowIcon
到false
,TopMost
到true
,StartPosition
到FormStartPosition.Manual
,SizeGripStyle
到SizeGripStyle.Hide
),所以没有可见的形式结构 - 创建一个
RichTextBox
,大小相同,位于左上角 - 将此框
BackColor
设置为SystemColors.InactiveBorder
(还记得透明键吗?)并且BorderStyle
也为None - 处理文本框内容:颜色,字体和字符串
- 同步这个表单的可见性与任何你需要和…瞧!你可以看到你的应用程序背景通过任何你写和编辑的文本框!
我不能假装这种方法适合每个人,但它比我见过的其他方法简单得多,只要我能保持这种方式,我确实更喜欢更简单的解决方案。
当然,当您关闭主窗体时,您必须处理子窗体,但这对您来说是非常基本的,不是吗?享受吧!