我正在尝试将文本框的背景颜色设置为透明,以便与我的表单的背景颜色混合。
我在下面尝试了以下内容。
TextBox1.BackColor = Color.Transparent 'This doesn't work it stays white'
我有什么遗失的吗?
答案 0 :(得分:0)
当我将TextBox.BackColor
设置为Color.Transparent
时,它会抛出System.ArgumentException
。我收到了这条消息:
Unvalid property value, The control does not support transparent colors background
。
答案 1 :(得分:0)
希望我没有迟到,但这实际上对我有用。首先为面板创建一个类,如下所示
Partial Public Class iPanel
Inherits Panel
Public Sub New()
SetStyle(ControlStyles.SupportsTransparentBackColor Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint, True)
BackColor = Color.Transparent
End Sub
End Class
然后创建RichTextBox
(而不是Textbox
),如下所示
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim CP As CreateParams = MyBase.CreateParams
CP.ExStyle = CP.ExStyle Or &H20
Return CP
End Get
End Property
现在编译代码并在面板中添加iRichTextBox。适合我
答案 2 :(得分:0)
Private Sub TextBox1_Paint(sender As Object, e As PaintEventArgs) Handles TextBox1.Paint
TextBox1.ForeColor = Color.White
TextBox1.BackColor = Color.Transparent
End Sub
您可以尝试执行此操作,而不是执行第一个操作。只需将您的代码放入Form Load
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
TextBox1.BackColor = color.(color of your Choice, same color of your background)
TextBox1.ForeColor = color.White
End Sub
就这么简单,它对我有用
答案 3 :(得分:0)
据我所知,文本框does not support
的透明颜色属性。 但是,如果您将back color
的{{1}}设置为textbox
的{{1}}颜色,仍然可以将其视为{{1 }}。
操作方法-您可以获取背景组件的颜色名称(在您的情况下为表单),然后将该名称传递给您想要透明的组件。>
same
说明-
background component
,我们只需要颜色的名称,即transparent
。Dim lname As String = Me.BackColor.ToString
Dim name As String = lname.Substring(7, lname.Length - 8)
txtbox1.BackColor = System.Drawing.Color.FromName(name)
部分