首页 > 解决方案 > 尝试通过位于单独表单上的按钮更改表单的背景颜色

问题描述

标题说明了一切。

但这是我使用的代码

Form1 f1 = new Form1();

    private void button2_Click(object sender, EventArgs e)
    {

        {
            f1.BackColor = Color.White;
        }

例如,按钮在 Form4 上,当我单击该按钮时,我希望 Form1 的 BackColor 更改为白色,但事实并非如此。

标签: c#

解决方案


现在,您正在从 Form4 创建类 Form1 的新实例,并更改它的颜色。如果您想更改已经存在的 Form1 实例的颜色,可以将 Form1 的实例传递给 Form4 的构造函数,并将该实例分配给 Form4 内部的 Form1 属性,如下所示:

public Form1 MyForm1; //Form1 property.

public Form4(Form1 form) //Form4's constructor.
{
    MyForm1 = form;
    InitializeComponent();
}

当您调用 Form4 时,您应该传递 Form1 的实例。如果它是从 Form1 调用的,您只需传递this

    Form4 MyForm4 = new Form4 (this);
    Form4 .Show();

最后,在 Form4 中,您将拥有 click 事件:

private void btnChangeColor_Click(object sender, EventArgs e)
{
    MyForm1.BackColor = Color.Blue;
}

推荐阅读