我在一个form中添加一个picturebox,然后用一副图片填充这个控件,,我想在这个图片上添加文字标注,因为要点这些文字还要连接到其他窗口,所以想用label.但是问题来了,label是矩形的,那么这个矩形的颜色就和图片不一致了,,所以我想问能不能解决这个问题,我看了下,label的背景颜色好象不能设置成透明的啊.怎么解决?求教各位高手了

解决方案 »

  1.   

    你的图片是纯色的还是混色 纯色的话 设置相应label背景色
      

  2.   

     private void pictureBox1_Paint(object sender, PaintEventArgs e)
            {
                Font fn = new Font("", 12,FontStyle.Bold);
                Pen p=new Pen(Color.Red);
                e.Graphics.DrawString("要显示的字符串", fn, p.Brush, new PointF(2, 2));
            }
      

  3.   

    那就不要用label,使用GDI把那个文字给绘上去
    使用那个什么类,名字不会写了,
    奶奶的,英语太烂
      

  4.   

    用GDI+画是个好办法!不过label不是不可以设置透明背景色的,但是感觉它做的不是很好,如果设置它背景色透明,则它的背景色其实是和它的父级容器的颜色相同,不信你把FORM的背景色换换,看看是不是Label的背景色也变了
      

  5.   

    但是我的label的文字是要有点击事件的啊,使用GDI+会不会就不能实现这个功能了,具体怎么实现,请贴详细代码,谢谢了
      

  6.   

    方法非常简单,如果采用绘制,那么自然要用GDI+,你可以定义一个Rectangle,然后在这个区域里绘制文字,
    同时,在MOUSEMOVE,MOUSEDOWN等事件里判断这个Rectangle.contains(e.location)是否为真就OK了?如果采用Label,应该也可以,直接设置成背景为transparent,也应该可以达到你的目的.