新手:C#中label标签的背景色问题

如何设置label标签的背景色为透明?图片说明
如图。怎么让在进度条progressBar控件上的label标签的背景色为透明?求解答

先将进度条设置为标签的父亲。即加上加上这段代码:label25.parent=progressBar1;然后设置标签的背景颜色为透明的。

不是字体透明了,而是标签跑路了

标签默认的的父亲是窗体,一开始的时候,location属性也是相对于窗体的。当运行时,标签的父亲改为了进度条,那么location属性也将是改为相对于进度条了,但是,这里是重点,这是为什么标签跑路的原因:加了label25.parent=progressBar1;这段代码之后,label的位置基准就变为progressBar的了,但location的数值没有变,当location的数值比进度条的size还大的时候,label不会显示。因此,在设置完label25.parent=progressBar1之后,还要设置location属性,比如label25.location=new point(0,0)。这时label显示在进度条的左上角。这是关于位置基准的问题,控件以谁为父亲,它的位置基准就一父控件的左上角为基准。在切换父亲的时候,要注意吧位置也得调一下。同样是咯location=(100,100),以不同的控件作为父亲,显示的位置时不一样的。也就是说,显示位置不但跟数值有关,还跟选择的基准有关。

你要设置透明才行,在属性窗口上backcolor属性选择Transparent(透明)或者在代码中设label25.BackColor=Color.Transparent

顺便说一句,progressBar的背景颜色一般默认也是跟窗体的背景颜色一样,所以,你把progressBar的背景改了跟窗体的背景不一样的颜色。虽然,进度条上的背景颜色好像不会显示出来,但它会影响在它上面的控件。

透明的意思是,它会以父控件的背景作为 背景颜色。父控件是什么颜色,它就是什么颜色的。progressbar控件有点特殊,它的背景颜色是看不出来的,但透明的label可以显示。

我明白你想要的效果,但用标签显示数字这个方法,恐怕不会达到你想要的效果。不如使用GDI把,直接将数字写在进度条上

label这个透明,在progressBar上的效果不如人意,但在其他控件上,比如pictureBox上,就挺好的

当进度条在增长时,要让标签适应进度条的颜色,这不是简单的设定透明值就能解决的,要解决恐怕还得写好些代码才行。用GDI也不是很难做,也就几行代码的事儿。刚开始可能难以理解,用多几次就好了。比如我给一个例子:
图片说明

是这张图图片说明