如何在c#中将控件的背景色设置为所需的背景控件?

如何在c#中将控件的背景色设置为所需的背景控件?,c#,winforms,controls,C#,Winforms,Controls,“我的表单”设置为以下属性: FormBorderStyle = None; BackColor = 64, 0 64; Transparency Key = 64, 0 64; 然后,我把矩形1和一个标签1放入我的表格中 矩形形状1属性: BackColor = SaddleBrown; 标签1属性: BackColor = transparent; 我想要label1.BackColor=透明以矩形形状1的底色显示,而不是以我表单的底色显示。可能吗?我该怎么做?谢谢 编辑 我希望我的标

“我的表单”设置为以下属性:

FormBorderStyle = None;
BackColor = 64, 0 64;
Transparency Key = 64, 0 64;
然后,我把矩形1和一个标签1放入我的表格中

矩形形状1属性:

BackColor = SaddleBrown;
标签1属性:

BackColor = transparent;
我想要
label1.BackColor=透明以矩形形状1的底色显示,而不是以我表单的底色显示。可能吗?我该怎么做?谢谢

编辑


我希望我的标签1的背景色是透明的,因为我想查看我的矩形形状1的背景图像。

透明不存在于标签和大多数控件中,除非您实际覆盖了on_paint。透明只需设置父容器的颜色:

Label1.BackColor = Color.Transparent
=

只需将父容器设置为矩形,假设它是一个容器,并且您可以继续。否则,您将需要派生一些类来创建矩形容器

编辑: 如果您想要类似行为的其他明目张胆的证据,请创建一个groupbox,在其中添加标签,然后更改字体大小、系列等,并检查标签是否自行更改。即使在他们身上指定了fond,父groupbox也会接管。要防止这种行为,只需在组框中放置一个面板,并将所有标签拖到其中,然后执行相同的操作,您将不会看到任何情况发生


很少有房地产有这样的表现,不幸的是,多年来侥幸发现了这一点

将控件的背景色设置为
Color.Transparent
意味着它使用其父背景

以下是您的选择:

  • 假设矩形形状1是某种控件,则可以使其成为标签的父控件:

    label1.BackColor = Color.Transparent;
    label1.Parent = rectangleShape1;
    
    但是,这会将标签的范围限制为矩形

  • 创造你自己的


  • 只需设置颜色:
    label1.BackColor=SaddleBrown
    。这也会使标签变成棕色。但我想用透明的。不可能?因为我的
    rectangleShape1
    有背景图片,所以我想让它显示出来。不包含在label1的背景色中。透明只是一个名称,它将其底色作为自己的颜色。至少在VisualStudio中是这样的。PMF回答了你。当我使用
    label1.BackColor=transparent
    ,它只是使
    背景色=64,0,64
    ,这也是
    透明度键。等等。。。
    透明
    是您的变量吗?如果您确实希望它是透明的,则必须将其设置为
    Color.FromArgb(0,0,0,0)
    标签1.Parent
    可能会显示一些
    图片,这就是为什么更改为父对象的背景色不起作用的原因,然后他可以使用图形类和drawtext函数直接在图片上书写。drawtext没有背景。
    
    label1.BackColor = Color.Transparent;
    label1.Parent = rectangleShape1;