如何从另一个类到达窗体的控件以更改背景颜色

时间:2017-12-02 18:12:48

标签: c# winforms class

我正在尝试更改应用程序中所有表单的控件的背景颜色,然后创建了一个类,然后在其中创建了一个方法。这是我的代码:

foreach (Control item in Controls)
{
    if (item is ComboBox)
    {

    }
    else
    {
        item.BackColor = Color.White;
    }
}
BackColor = Color.White;

问题是,带有Controls和BackColor属性的foreach语句在表单中没有问题,但在类中,它们不起作用。如何获取表单的所有控件并在类似的代码中从类更改其BackColors?或者您有任何建议作为解决方案吗?

1 个答案:

答案 0 :(得分:3)

我认为你的类有一个名为ChangeBackgroundColor的方法,然后你可以简单地将表单引用作为参数传递给这个方法,这样你就可以从你想要改变控件背景颜色的任何形式调用这个方法。 / p>

public class MyClass
{
    public void ChangeBackgroundColor(Form f)
    {
        foreach (Control item in f.Controls)
        {

            if (item is ComboBox)
            {

            }
            else
            {
                item.BackColor = Color.White;
            }
        }
        f.BackColor = Color.White;
    }
}

然后在你的一个表单中调用这个类方法

public class Form1:Form
{
    public Form1()
    {
        InitializeComponents();
        MyClass c = new MyClass();
        c.ChangeBackgroundColor(this);
    }
}