【问题标题】:How to make transparent label in vb.net? [duplicate]如何在 vb.net 中制作透明标签? [复制]
【发布时间】:2018-08-19 14:54:07
【问题描述】:

我有一个在图片上的标签。所以我想让标签的背面颜色透明。当我将标签的背景色属性设置为透明时。图片没有通过文本框背景颜色显示。背景颜色获取表单的颜色。 Image

【问题讨论】:

  • 这就是它的工作原理 - 透明意味着使用父级的任何背景颜色。没有一个控件“在”另一个控件“前面”的概念。请阅读How to Ask 并采取tour

标签: vb.net


【解决方案1】:

标签的背景继承其容器背景。

您可以使用[Control].Controls.Add() 方法设置不同的Parent Container,该方法将Parent 属性设置为新Container(您也可以直接修改.Parent 属性)。

您可以在表单构造函数(表单的Public Sub New() - 在InitializeComponent() 之后插入代码)或Form.Load() 事件处理程序中重新定义标签的父级。
这里我都展示了,选择一个:

Public Sub New()

    InitializeComponent()

    PictureBox1.Controls.Add(Label1)
    'Re-define the Label.Location if required
    Label1.Location = New Point(0, 0)
End Sub

Form.Load() 事件中的相同内容:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    PictureBox1.Controls.Add(Label1)
End Sub

作为替代方案,您可以使用 PictureBox .Paint() 事件的 e.Graphics 来简单地绘制相同的文本。

Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
    Using TextBrush As SolidBrush = New SolidBrush(Me.ForeColor)
        e.Graphics.DrawString("BITS Registration ID", Me.Font, TextBrush, New Point(5, 5))
    End Using
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 2016-04-09
    • 2014-12-31
    • 2016-02-02
    • 1970-01-01
    相关资源
    最近更新 更多