[C#]通过配置文件更改控件颜色等较复杂的属性?

比如我有一个lablelblDemo,现在通过一个按钮事件,我想把它的颜色变成红色,但并不通过直接赋值:this.lblDemo.BgColor=Color.Red;实现... 比如我有一个lable lblDemo,现在通过一个按钮事件,我想把它的颜色变成红色,但并不通过直接赋值:
this.lblDemo.BgColor= Color.Red;
实现,而是通过读取配置文件的方式来实现,配置文件键值对的value值读取出来都是String类型,那么该如何实现?
比如当前的配置文件中有如下:
<add key="红色" value="Color.Red"/>
<add key="蓝色" value="Color.Blue"/>
或者也可以自己写其他的配置文件,只要能不通过直接赋值实现就可以了。
展开
 我来答
bxfc
2010-01-12 · TA获得超过872个赞
知道小有建树答主
回答量:1104
采纳率:0%
帮助的人:686万
展开全部
<add key="红色" value="Color.Red"/>
<add key="蓝色" value="Color.Blue"/>
改成这样
<add key="红色" value="Red"/>
<add key="蓝色" value="Blue"/>

在给值的时候这样写:
string str="Red";//这个“Red”是你从配置文件里读取出来的
lblDemo.BackColor=System.Drawing.Color.FromName(str);//不一定是BackColor任何一个颜色属性都可以这样写
876543123123
2010-01-12
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
<add key="红色" value="Color.Red"/>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酱紫看灰机
2010-01-12
知道答主
回答量:82
采纳率:0%
帮助的人:33.2万
展开全部
直接赋值时的Color.Red和你配置文件中的"Color.Red"不是一回事

C#中Color是一个枚举类型,Color.Red表示的是Color枚举中的Red
而你的配置文件中的"Color.Red"只是个字符串
也就是说当从配置文件中读出"Color.Red"时要加一些判断,如:

string Key_V=(读到的配置文件中的key值)
if (Key_V="Color.Red"){this.lblDemo.BgColor= Color.Red;}
if (Key_V="Color.Blue"){this.lblDemo.BgColor= Color.Blue;}
此方法要加很多的IF,且不灵活

你可以试试用RGB方式
this.lblDemo.BgColor=Color.FromArgb(R,G,B)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dkxpsg
2010-01-12 · TA获得超过1628个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1050万
展开全部
你可以把颜色转换成整数或者"#ff00ff","red"的格式保存,如下,使用时只要转换一下就行
int red = ColorTranslator.ToWin32(Color.Red);
int blue = ColorTranslator.ToWin32(Color.Blue);
int other = ColorTranslator.ToWin32(Color.FromArgb(123, 32, 42));
this.lblDemo.BackColor = Color.FromArgb(red);

string red2 = ColorTranslator.ToHtml(Color.Red);
this.lblDemo.BackColor = ColorTranslator.FromHtml("red");
this.lblDemo.BackColor = ColorTranslator.FromHtml("#00ff00");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式