回 帖 发 新 帖 刷新版面

主题:急切求助:如何使Label的背景色为透明的?

在建立了一个MDI窗体后,为父窗体的BackGroundImage设置了一幅图片,在图片上加了一个Label控件,Label控件的Text 设置了“复杂工业工业过程”。但在运行时,父窗体的窗口中,Label的背景色不是透明的,很是影响感观效果 。

请教各位,应该如何才能使这种情况下的Label控件背景色为透明的呢 或者说不影响感观效果? 谢谢各位!!

回复列表 (共10个回复)

沙发

设定控件是否支持透明是需要在控件的构造函数中设定。

不过label的构造函数我们是不能修改的。

所以,要么自己重新做一个控件,要么用GDI+绘制字符串。

板凳

但是我看到过字体在背景下的设计  我认为我现在没能做出来的原因是我没发现  
  谢谢大家继续发表对此帖的帮助!

3 楼

直接用PS把文字写在图片上不就好拉

4 楼

什么是ps?如何用 ? 谢谢!!!

5 楼

找msdn,里面有详细的说明.控件本身是不支持透明的,但你可以修改contrlstyle枚举使它支持透明,但这是比较复杂的。我的建议,不如直接用GDI+绘出来够快。

6 楼

其實,這個需要了解兩方面的技術就可以完成。
一、在picturebox裡,賦圖象,並寫入文字。代碼如下:
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        Dim strTitle As String = "大家好!"
        Dim fntTitle As New Font("新細明體, 12pt", 28, FontStyle.Bold, GraphicsUnit.Pixel)
        e.Graphics.DrawString(strTitle, fntTitle, New SolidBrush(Color.Red), 82, 8)
    End Sub
二、了解MdiClient的用法,將picturebox裡的圖象寫入MdiClient裡即可。代碼如下:

    Private Sub ClientArea_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ClientArea.Paint
        e.Graphics.DrawImage(PictureBox1.Image, 0, 0, ClientArea.Width, ClientArea.Height)
        Dim strTitle As String = "大家好!"
        Dim fntTitle As New Font("新細明體, 12pt", 28, FontStyle.Bold, GraphicsUnit.Pixel)
        e.Graphics.DrawString(strTitle, fntTitle, New SolidBrush(Color.Red), 150, 150)
    End Sub


    Private Sub ClientArea_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles ClientArea.Resize
        ClientArea.CreateGraphics.DrawImage(PictureBox1.Image, _
            0, 0, ClientArea.Width, ClientArea.Height)
        Dim strTitle As String = "大家好!"
        Dim fntTitle As New Font("新細明體, 12pt", 28, FontStyle.Bold, GraphicsUnit.Pixel)
        ClientArea.CreateGraphics.DrawString(strTitle, fntTitle, New SolidBrush(Color.Red), 150, 150)
    End Sub

7 楼

用COLOR类的TRANSPARENT属性 就可以。
代码:LABEL1.BACKCOLOR=COLOR.TRANSPARENT

8 楼

LABEL1.BACKCOLOR=COLOR.TRANSPARENT
我试了 ,不行。
谢谢你再帮俺想想办法!!

9 楼

PS=PhotoShop

10 楼

还是直接用GDI+画图吧!把字符串写到背景上!简单省力!最好写到picturebox的paint事件里!

我来回复

您尚未登录,请登录后再回复。点此登录或注册