将颜色设置为变量以供以后在c#

时间:2018-03-25 12:26:52

标签: c# winforms colors

我尝试将颜色存储到我以后可以使用的变量中,而不是两次提供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

1 个答案:

答案 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