是否可以从单个表单更改所有表单的背景颜色?就像在我的系统中我有10个表单,并通过按钮单击某个表单,我可以更改所有其他表单的背面颜色并保存颜色?
答案 0 :(得分:1)
为此,您可以在全局类中为背景颜色定义一个static
变量,并在按钮单击时更改它。
EG。在你的每个表单代码将是这样的..
Form1.BackColor = globalClass.BackColor;
在GlobalClass.cs中:
public static string BackColor="Red";
在按钮上单击某种形式:
globalClass.BackColor = "Black";
这是一种可行的方法。
您可以相应地应用您的逻辑。
答案 1 :(得分:1)
将Sagar的答案进一步创建静态表单管理器。
每个表单都会在那里注册,然后经理可以完成所有工作..
在构造函数中注册表单:
public Form1()
{
FormManager.registerForm(this);
InitializeComponent();
}
以及Closed
个活动取消注册:
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
FormManager.unRegisterForm(this);
}
现在,如果您愿意,可以像这样更改所有表单“BackColors
:
private void button1_Click(object sender, EventArgs e)
{
FormManager.setAllBackcolors(Color.Green);
}
这是一个最小的表单管理器类:
public static class FormManager
{
private static List<Form> formList = new List<Form>();
public static void registerForm(Form form)
{
if (!formList.Contains(form)) formList.Add(form);
}
public static void unRegisterForm(Form form)
{
if (formList.Contains(form)) formList.Remove(form);
}
public static void setAllBackcolors(Color backColor)
{
foreach (Form f in formList) if (f != null) f.BackColor = backColor;
}
}
如果您从共同的祖先派生您的表格,则注册&amp;取消注册只能在基本表单中编码一次。
当然,经理也可以用于其他任务,例如查找或订购表格。
如果您想影响新打开的表格,您可以将颜色存储在经理中,并在注册方法中添加一行..