我正在尝试更改应用程序中所有表单的控件的背景颜色,然后创建了一个类,然后在其中创建了一个方法。这是我的代码:
foreach (Control item in Controls)
{
if (item is ComboBox)
{
}
else
{
item.BackColor = Color.White;
}
}
BackColor = Color.White;
问题是,带有Controls和BackColor属性的foreach语句在表单中没有问题,但在类中,它们不起作用。如何获取表单的所有控件并在类似的代码中从类更改其BackColors?或者您有任何建议作为解决方案吗?
答案 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);
}
}