如何从另一个用户控件更改用户控件的标签颜色? C# .NET 框架

How to change label color of a usercontrol from another usercontrol ? C# .NET Framework

我的这个项目有 3 个用户控件和 1 个表单,按下按钮时用户控件出现在表单上。现在我需要通过单击位于“UserControl1”中的按钮来更改“UserControl3”上的标签颜色,我尝试了以下代码但它没有用

var name = new UserControl3();
name.label.ForeColor = Color.Green;

我也试过另一种方法,但它抛出异常,如下图 https://imgur.com/kBHUBoX

然后我找到了另一种几乎按预期工作的方法,即删除和添加用户控件。问题是然后它继续在应该是空的主窗体上

var name = new UserControl3();
this.Controls.Remove(name);
this.Controls.Add(name);
name.label1.ForeColor = Color.Green;

上面的代码几乎可以按我的意愿工作,但我认为这不是一个好的解决方案,而且我很确定还有其他更简单的方法可以使这项工作...任何形式的帮助都将受到赞赏。谢谢

您不必重新创建用户控件的实例,而是使用创建的第一个实例,只需更改控件的颜色。

仅此代码:

name.label.ForeColor = Color.Green;

全局定义此代码

var name = new UserControl3();