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

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

10个回答

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

bufukanni
bufukanni 大神,这样是透明了,但是连label中的文字也透明了啊。。。
3 年多之前 回复

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

bufukanni
bufukanni 有什么好的方法吗?急
3 年多之前 回复

标签默认的的父亲是窗体,一开始的时候,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),以不同的控件作为父亲,显示的位置时不一样的。也就是说,显示位置不但跟数值有关,还跟选择的基准有关。

bufukanni
bufukanni 试了你说的,标签回来了,但是没有透明。。。
3 年多之前 回复

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

bufukanni
bufukanni 我设置label的backcolor了,还是没有透明。是不是因为你下面说的,progressBar的背景颜色的关系?
3 年多之前 回复

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

bufukanni
bufukanni 这条没怎么看懂,progressBar的背景色是要和窗体的背景一样还是不一样?
3 年多之前 回复

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

bufukanni
bufukanni label还是没有透明,难道是因为label在控件progressBar上的原因?
3 年多之前 回复

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

bufukanni
bufukanni 去看了下你说的GDI,就目前我的水平加上时间来说,用GDI实现不太现实。。。
3 年多之前 回复

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

bufukanni
bufukanni 还是非常感谢你能和我这个菜鸟聊这么多
3 年多之前 回复

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

是这张图图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐