c# - 尝试通过位于单独表单上的按钮更改表单的背景颜色
问题描述
标题说明了一切。
但这是我使用的代码
Form1 f1 = new Form1();
private void button2_Click(object sender, EventArgs e)
{
{
f1.BackColor = Color.White;
}
例如,按钮在 Form4 上,当我单击该按钮时,我希望 Form1 的 BackColor 更改为白色,但事实并非如此。
解决方案
现在,您正在从 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;
}
推荐阅读
- java - BouncyCastle 签名创建 java.lang.NoSuchFieldError: xmss_SHA256ph
- pdf - 在 Adobe Acrobat 中重用 javascript
- datetime - 如何使用 UTC 时区偏移格式化 DateTime?
- java - 对象映射器 | 动态映射
- php - 如何使用 .env.test 中的环境变量启动 Symfony 服务器?
- javascript - reactjs中如何将值对象转换为数组
- asp.net-core - 尝试访问 Claims Identity Core 时出错
- python - 如何排除某些内容被 Python 抓取
- mysql - MySQL排他锁
- reactjs - 无法在 React 中使用带有 url-loader/file-loader 的 Webpack 查看上传的图像(在后端服务器上)