四时宝库

程序员的知识宝库

vb.net做一个透明Label标签控件(vb标签透明且不具有边框)

以前,就是在VB.6.0时代,在vb里做一个透明的标签Label控件是很容易的事,在VB.NET里,有些VB老用户发现做一个透明控件好像很难,或者就是做不出来。

其实在VB.NET里做透明Label控件也是很容易的,你只要掌握2个要点即可。

我们先从工具箱拖2个Label控件到窗体,Label1设置背景色为橙色,Label1设置背景色为透明色,Label1的宽和高尺寸大一些,Label2在Label1之上。代码如下:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Label1.BackColor = Color.Orange '橙色
        Label2.BackColor = Color.Transparent '透明色

    End Sub

在运行前,如下图所示:

按F5运行后,结果发现,Label2的背景色只是跟窗体的的背景色一致,并没有对Label1这个控件透明。

问题就出在,在VB.NET,想让一个控件在另一个控件里成为一个背景色透明的控件,要满足2要素:一方面要设置这个控件的背景色为透明色,另一方面,还要让这个控件成为另一个控件的子控件。

所以,上面的代码,只要加一句让Label2成为Label1的子控件的语句即可。

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Label1.Controls.Add(Label2) '让Label2成为Label1的子控件
        Label1.BackColor = Color.Orange '橙色
        Label2.BackColor = Color.Transparent '透明色

    End Sub

运行后,结果如下图所示。

可见,Label2这个标签在Label1控件里,背景透明了。


大家举一反三,让一个标签控件在一个Picture控件里做到背景透明,是不是也应该满足2个要求:1是标签的背景色是透明的,2是标签要成为Picture控件的子控件。

在工具箱里拖一个Picture控件代替Label1控件,设置一下Picture1控件的image属性设置一个合适的图片,代码改一下,如下:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        PictureBox1.Controls.Add(Label2) '让Label2成为Picture1的子控件
        Label2.BackColor = Color.Transparent '透明色

    End Sub

运行结果如下:

可见,满足上面说的2要素,一般情况下,都可以做一个透明的Label标签控件。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接