为什么我的label控件的背景不能和我设置的一致
我在一个form上放在一个picturebox,设置了背景,我的上面放了一个有内容的label,为什么我的label的背景
还是窗体的背景呢,我该如何修改呢?
有图有真相.
[解决办法]
那个蓝色的背景可能是picturebox而不是窗体背景,使得Label透明色显示为窗体本身的颜色。Label透明只针对其父容器透明。
[解决办法]
实在不行就只有重绘了:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
foreach (Control C in this.Controls)
{
if (C is Label)
{
Label L = (Label)C;
L.Visible = false;
e.Graphics.DrawString(L.Text, L.Font, new
SolidBrush(L.ForeColor), L.Left - pictureBox1.Left, L.Top - pictureBox1.Top);
}
}
}
[解决办法]
因为PictureBox不是容器控件,所以lable透明之后还是显示的form的背景,所以想想可以替代一下,将picturebox设为lable的父容器,用如下代码:
var pos = this.PointToScreen(label1.Location);
pos = pictureBox1.PointToClient(pos);
label1.Parent = pictureBox1;
label1.Location = pos;
label1.BackColor = Color.Transparent;