[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"/>
或者也可以自己写其他的配置文件,只要能不通过直接赋值实现就可以了。 展开
this.lblDemo.BgColor= Color.Red;
实现,而是通过读取配置文件的方式来实现,配置文件键值对的value值读取出来都是String类型,那么该如何实现?
比如当前的配置文件中有如下:
<add key="红色" value="Color.Red"/>
<add key="蓝色" value="Color.Blue"/>
或者也可以自己写其他的配置文件,只要能不通过直接赋值实现就可以了。 展开
展开全部
<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任何一个颜色属性都可以这样写
<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任何一个颜色属性都可以这样写
展开全部
<add key="红色" value="Color.Red"/>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接赋值时的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)
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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以把颜色转换成整数或者"#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");
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");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询