无法从 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 中实例化时,它只是向用户控件名称添加一个。
我开始使用用户控件重新分组我的表单,并在现有应用程序上拆分容器。在我有一个名为 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 中实例化时,它只是向用户控件名称添加一个。