C#中label控件的BackColor如何设置为透明

zhuzhanghua4213 2011-01-28 10:50:06
在Wince系统中,我用C#编程,里面用到label控件,本来label控件的BackColor值如果不设置的话,label控件可以透明,可以随背景色改变而改变,但是如果我在程序中用代码设置label控件的BackColor值为某种颜色后,再用代码想修改label控件的BackColor值为透明,就再也修改不回来了,有什么办法可以用代码来设置label控件的BackColor值为透明?急求答案!谢谢

补充,在Wince中用Color.Transparent是没有用的。

...全文
1578 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DeWitt_Yang 2012-08-22
  • 打赏
  • 举报
回复
直接将label控件的backcolor属性设置成Transparent即可
xiangqianmei 2012-08-14
  • 打赏
  • 举报
回复
干嘛不修改属性。如果要知道代码是怎么写的,再查看源码不就好了
我是个菜鸟,只会用笨方法
szy07048097 2012-08-10
  • 打赏
  • 举报
回复
前面加一句:label.parent=??//??代表后面的控件
catcatst01 2011-02-21
  • 打赏
  • 举报
回复
static Point targetOffset;
static Rectangle drawBounds;
static SizeF sizeTmp;
static int intleft = 0;
/// <summary>
/// Label透明
/// </summary>
/// <param name="labSource">Label</param>
/// <param name="picTarget">Form</param>
/// <param name="grx">图面</param>
public static void DrawLabel(Label labSource, Form picTarget, Graphics grx)
{

targetOffset = picTarget.Location;

drawBounds = labSource.Bounds;



drawBounds.X -= picTarget.Location.X;

drawBounds.Y -= picTarget.Location.Y;



if (labSource.TextAlign == ContentAlignment.TopLeft)
{
grx.DrawString(labSource.Text, labSource.Font, new SolidBrush(labSource.ForeColor), drawBounds);
}


else if (labSource.TextAlign == ContentAlignment.TopCenter)
{
sizeTmp = grx.MeasureString(labSource.Text, labSource.Font);

intleft = picTarget.Width / 2 - Convert.ToInt32(sizeTmp.Width) / 2;

intleft -= picTarget.Location.X;
Rectangle rect = new Rectangle(labSource.Left, labSource.Top, Convert.ToInt32(sizeTmp.Width), Convert.ToInt32(labSource.Height));

grx.DrawString(labSource.Text, labSource.Font, new SolidBrush(labSource.ForeColor), rect);
}

else if (labSource.TextAlign == ContentAlignment.TopRight)
{

sizeTmp = grx.MeasureString(labSource.Text, labSource.Font);

intleft = labSource.Width - Convert.ToInt32(sizeTmp.Width) + labSource.Left;

labSource.Left -= picTarget.Location.X;

Rectangle rect = new Rectangle(labSource.Left, labSource.Top, Convert.ToInt32(sizeTmp.Width), Convert.ToInt32(sizeTmp.Height));

grx.DrawString(labSource.Text, labSource.Font, new SolidBrush(labSource.ForeColor), rect);

}
}
zhuzhanghua4213 2011-01-29
  • 打赏
  • 举报
回复
没人会吗?顶一下,希望有人解答!

19,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧