无法从 WinForms 应用程序中的其他 类 访问 UserControl 对象

Can't access UserControl objects from other classes in WinForms Application

我开始使用用户控件重新分组我的表单,并在现有应用程序上拆分容器。在我有一个名为 GlobalFunctions 的 class 之前,它有一个名为 ResetAllForms() 的方法。当我从 frmMain 运行 GlobalFunctions.ResetAllForms() 时,它会将表单中的所有属性设置为我想要的默认值(disabled/enabled,可见或不可见。)

之前我像 formName.Textbox1.Enabled = True 一样访问它们,但现在如果我尝试从用户控件名称像 UserControlA.Textbox1.Enabled = True 调用它们,它会给我一个错误 "Reference to a non-shared member requires an object reference"。我知道这意味着实例化用户控件的副本,但我只是从工具箱中拖放,所以我不知道它的名字是什么。

显然它正在 back-end 中安装用户控件。我通过使用 IntelliSense 从主窗体中查找其名称找到了它。

所以在我的 GlobalFunctions.ResetAllForms() 方法中,我发现它是 frmMain.UserControlA1.Textbox1。这样我就可以这样设置了; frmMain.UserControlA1.Textbox1.Enabled = True

显然,当它在 back-end 中实例化时,它只是向用户控件名称添加一个。