我是把一个label控件放在一个picturebox的上面,picturebox本身已经有一个图片,而我想把label的背景设为透明的,直接将字显示在picturebox的上面,有会的告诉下,在线等候,满意马上结贴...

解决方案 »

  1.   

    Label.BackColor = Color.Transparent
      

  2.   

    试过,不好用,而且我在form_shown和form_load事件里都试过,要不就是没效果,要不就是连上面的字体也跟着没有了
      

  3.   

    Label.BackColor = Color.Transparent
      

  4.   

    label1.BackColor = Color.Transparent;
    pictureBox1.Controls.Add(label1);
    label1.Top = 10;//Top属性建议设置修改下要不然可能看不到label
      

  5.   


    同样的我试过好几次了,最后的效果就是label的背景色并没有变成透明,而只是变成了全白,知道这是为什么么
      

  6.   

    SetStyle(ControlStyles.SupportsTransparentBackColor,   true);不是所有的control都能有透明属性。   
        
      参看   
      http://www.syncfusion.com/faq/windowsforms/search/983.aspx
      

  7.   

    我看了下,是写在哪个事件中,是在form_load事件中么
      

  8.   

    有你的方法确实让背景变透明了,可是文字也没了,我看了很多贴子都这么说过,要变一个label的位置才能看到,可是怎么变呢,只是随便换一个位置还是要和picturebox的位置有什么关联么
      

  9.   

    位置是相对于picturebox左上坐标的。
    比如写成  0,0  那么它就在picturebox的左上角,不管picturebox在屏幕的那个位置。(它已成为picturebox的子控件,picturebox是它的容器)
      

  10.   

    首先不管我怎么换位置,label控件的背景是透明了,可就是看不到原来应该在label上显示的文字,现在可以说已经解决了背景透明的问题,现在主要是如何让label上的文字显示出来,这个问题我看过很多贴子了好像都没有一个确切的答案
      

  11.   

    可以显示的。字体的颜色和图的颜色混在一起了?看不到文字,背景也透明,你如何得知label就在picturebox的可见区域中?你设了边框?
      

  12.   

    哦上帝啊,整到最后背景还是没有透明,明明已经设了Transparent,为什么它就是不是透明的呢
      

  13.   

    这个方法我试了多次,如果不加最后一句label.Top=10的话, label整个都看不到了,可如果加了最后一句的话文章显示了,可是还是没有透明...
      

  14.   


    private void Form1_Load(object sender, EventArgs e)
    {
       label1.BackColor = Color.Transparent;
       pictureBox1.Controls.Add(label1);
       label1.Location = new Point(5, 10);
     
    }
    不知LZ为什么原因达不到透明效果,难道是“人品问题”。开个玩笑,请LZ不要介意。