C#中,比如语句:Label1.BackColor = Color.red; 如果声明一个string str = “Label1.BackColor”;

用str = Color.red; 显然这样是语法错误的。我的问题是:怎么让程序认为str的字符串内容和设置属性的语句Label1.BackColor完全等价呢?

可以这样 属性其实就是程序的赋值 backcolor 是属性。 它的类型是 System.Drawing.Color
正常的复制方式是 Label1.BackColor=System.Drawing.Color .Red;
也可以 分成两步 System.Drawing.Color lblcolor=System.Drawing.Color .Red;
Label1.BackColor=lblcolor;
如果用string 类型的变量的话 赋值的时候需要进行类型的强制转换 希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-24
别听他们瞎忽悠啊,听我的。

你的意思是可以这样对不对,Label1.SetProperty("BackColor",Color.Red),或者是SetValue("Label1.BackColor",Color.Red);
有好多方式可以达到,TypeDescriptor、反射、Linq表达式树,或者任意一个表达式引擎都可以完成。本回答被提问者和网友采纳
第2个回答  2013-02-05
不会,因为 “Label1.BackColor” 是一个字符串,并不是属性值,凡事用 双引号引起来的都是字符串追问

我的问题是:有什么办法让程序认为str的字符串内容和设置属性的语句Label1.BackColor完全等价呢?

追答

让字符串的颜色变成 label的颜色? 为什么要这样错,没意义啊,说到底你还要是要把字符串给显示出来的吧,比如显示要textBox上,你只要设置textbox的文本颜色,那字符串就会变成那种颜色啊. 还是你的意思是要取得那个 颜色的值放进字符串里

追问

我的目的是:比如有20个label控件,控件的Name按顺序编号,label1、label2、label3……,让用户选择一个数字段,比如用户选择数字2-5时,此时让label2、label3、label4、label5变成红色。不知说清楚没有。如何实现呢?

追答

那么我给你讲一下思路,先创建20个checkBox 然后但用户单击的时候,判断checkBox是否选中,比如用户点击了 第三个checkBox ,那么判断第三个checkBox 是否选中,如果选中,那么样第三个label的颜色变成红色

第3个回答  2013-02-05
完全可以用js控制啊
相似回答