首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

为什么小弟我的label控件的背景不能和小弟我设置的一致

2013-03-10 
为什么我的label控件的背景不能和我设置的一致我在一个form上放在一个picturebox,设置了背景,我的上面放了

为什么我的label控件的背景不能和我设置的一致
我在一个form上放在一个picturebox,设置了背景,我的上面放了一个有内容的label,为什么我的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;

热点排行