不好意思,补充个问题
我用
  Application.EnableVisualStyles(); 
   Application.DoEvents ();怎么没看见变化呢?还有什么地方需要改,我的是.net 2003

解决方案 »

  1.   

    控件的扁平样式属性设置为system,才能产生变化。
      

  2.   

    也设成了system,可还是不行
    郁闷惨第一个问题,哪位老大帮帮忙~~
      

  3.   

    VB's code as following:     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            SetStyle(ControlStyles.SupportsTransparentBackColor, True)
            Label1.BackColor = Color.Transparent
        End Sub
      

  4.   

    我的是在pictureBox上放一个Label,需要显示pictureBox里面image的图片背景,而不是窗口的背景
    谢谢!!!
      

  5.   

    Q: 我的是在pictureBox上放一个Label,需要显示pictureBox里面image的图片背景,而不是窗口的背景
    A: 
    我的答案
            SetStyle(ControlStyles.SupportsTransparentBackColor, True)
            Label1.BackColor = Color.Transparent就是解决你的问题,难道你连试一下都不试码?
    SetStyle(ControlStyles.SupportsTransparentBackColor, True) 使所有的Control都
    能够SupportsTransparentBackColorLabel1.BackColor = Color.Transparent 使Label1透明。
    再把Label1 放在PictureBox1 上不就成了。
    嗨!!!
      

  6.   

    大哥
    真的不行呀?
    还是Form的背景色,而不是pictureBox的颜色
    是我哪点没搞对吗???
      

  7.   

    C# 没有关系了“还是Form的背景色,而不是pictureBox的颜色”
    是不是你没有把label放在pictureBox 上面?
    你能看到pictureBox的颜色吗?
      

  8.   

    你的可以吗??Form背景是白色,PictureBox的Image选了一张图
    把Label放在PicrureBox上
    然后设置,可是Label是白色的,而不是那张图??
      

  9.   

    设置Label的Parent为PictureBox即可,透明色只是针对父控件的
      

  10.   

    To  cqlijie(小李不探花)
    对不起,我确实没有试用PictureBox 
    我Panel 代替PictureBox 可以!
    解决办法:
    1。 Panel 代替PictureBox!(试过的)
    2.  写一个MyPictureBox inherites PictureBox (没试过的)
    Public Class MyPictureBox
        Inherits PictureBox
        Public Sub SetTransparent()
            SetStyle(ControlStyles.SupportsTransparentBackColor, True)
        End Sub
    End Class    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
     Handles MyBase.Load
            SetStyle(ControlStyles.SupportsTransparentBackColor, True)
            PictureBox1.SetTransparent()
            Label1.BackColor = Color.Transparent
        End Sub
    3 utna(年轻如水) "设置Label的Parent为PictureBox即可,透明色只是针对父控件的"
    真的可以吗? 那就好, see more info 
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskgivingyourcontroltransparentbackground.asp
      

  11.   

    label背景透明:
    label1.BackColor=Color.FromArgb(0,label1.BackColor );
      

  12.   

    To johnczy:
    你提出的两点原理都跟我说的一样:透明色只是针对父控件的。
    PictureBox不是Container控件,所以在设计时不能设置为Label的父控件,即Label的父控件实际上为窗体了(或其它容器),所以设为透明色后,它的背景色就是窗体了。
    Panel是容器,所以直接支持。
      

  13.   

    utna(年轻如水)说得对啊,太棒了,不错的方法,针对父控件的我的代码如下:this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); this.label1.BackColor = Color.Transparent; this.label1.Parent = this.pictureBox1;试验成功
      

  14.   

    谢谢utna(年轻如水):搞定了
    也谢谢johnczy