天天看点

C#中pictureBox上如何设置label透明

C#中pictureBox上如何设置label透明

在pictureBox的Paint事件中写下如下代码

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);

                }

            }

        }

或者在载入页面的时候在LOAD中写入下面代码:

pictureBox1.SendToBack();

            label1.BackColor = Color.Transparent;

            label1.Parent = pictureBox1;

            label1.BringToFront();

第一个方法较通用,WINCE上不支持透明属性也可以,但是要自己编写定位代码,他的原理只是找到当前PictureBox上所有的label控件 然后把他们置为不可视!然后重新用DrawString方法把TEXT输出!

第二个方法只能再.net 完整版上实现 且 透明到Panel上 所有只能再Panel上添加图片然后放置!