我想将textBox作为透明背景c#.net 如果定义属性
,Visual Studio会出错答案 0 :(得分:4)
将它放在构造函数中:
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);
的更多信息
答案 1 :(得分:3)
我找到了解决这个问题的方法,我自己就是这个问题。
我在这里读到的大部分内容都是真实的。而“la”AlphaBlendTextBox
方法对某些环境而言过于复杂或过于耗时,而这些环境已经收费很高。
假设您具有给定的背景颜色和给定的图片或您希望通过RichTextBox
控件看到的任何内容。这就是我所做的(总结):
TransparencyKey
设置为SystemColors.InactiveBorder
FormBorderStyle
至FormBorderStyle.None
; ControlBox
,MinimizeBox
,MaximizeBox
和ShowIcon
至{{1 },false
到TopMost
,true
到StartPosition
,FormStartPosition.Manual
到SizeGripStyle
),所以没有可见的表单结构SizeGripStyle.Hide
,其大小与表格相同,位于其左上角RichTextBox
设置为BackColor
(还记得TransparencyKey吗?)
及其SystemColors.InactiveBorder
到无我不能假装这种方法适合所有人,但它比我见过的其他方式更简单,只要我能保持这种方式,我更喜欢更简单的解决方案。
当然,当您关闭主表单时,您必须处理子表单,但这对您来说非常基本,不是吗?
享受!
答案 2 :(得分:2)
这不是一件容易的事。 .Net TextBox控件是Win32 Edit控件的包装器,因此您需要进行子类化以实现背景透明度。
看看这个示例:AlphaBlendTextBox - A transparent/translucent textbox for .NET