我尝试将颜色存储到我以后可以使用的变量中,而不是两次提供RGB信息:
代码:
public partial class Form1 : Form
{
public Color Color1 = new Color();
public Color Color2 = new Color();
public Form1 ()
{
InitializeComponent();
Color1 = Color.White;
Color2 = Color.FromArgb(255, 112, 114);
}
private void LoadSomething()
{
//not working - but dont know why
TreeNode TreeNode1 = new TreeNode();
TreeNode1.ForeColor = Color1;
TreeNode1.BackColor = Color2;
//working
TreeNode TreeNode1 = new TreeNode();
TreeNode1.ForeColor = Color.White;
TreeNode1.BackColor = Color.FromArgb(255, 112, 114);
}
}
有人可以告诉我为什么它不能以第一种方式工作吗? THX
答案 0 :(得分:0)
原因可能如下:
你调用你的方法befor class A
def self.query
@query ||= self.generate_query
end
def self.generate_query
return "abcd"
end
end
class B < A
def self.generate_query
query_part_1 = "ab"
return query_part_1 + generate_query_part_2
end
def self.generate_query_part_2
return '2'
end
end
的construcotr被调用。这样,颜色对象就会被实例化,但在构造函数中,您可以使用指定的实际颜色传递对象。因此,在调用构造函数之前,你有“空白”颜色,在调用构造函数之后,你有白色和另一种颜色。
因此,如果在调用构造函数之前调用Form1
,则第一种方法将不起作用。第二个,直接指定颜色,因此它将始终有效。
但可以肯定的是,您应该共享代码,并在其中调用LoadSomething
。