我正在尝试创建一个将用户控件添加到我的主窗体的函数。我希望用户控件本身也可以使用此功能,因此我将其设为静态。
我的问题是,当它是静态的我不能使用this.Controls.Add(ucontrol);
时,我尝试将其更改为ActiveForm.Controls.Add(ucontrol);
但 ActiveForm 为 NULL 并且没有 Controls 属性(引发异常)。
更新#1:我最终在用户控件中做了这样的事情:
MainForm ref_to_mainform_to_gain_access_to_functions = (MainForm)Parent;
ref_to_mainform_to_gain_access_to_functions.DisplayControl(ucontrol);
也许它更好,但我仍然认为可以从静态方法访问主窗体?
更新#2:
Application.OpenForms["FormName"]
从静态方法工作。
我仍然试图找出用户控件的全部目的是否用作带有按钮的菜单,在点击时显示其他用户控件,从用户控件调用 mainform 上的函数(显示用户控件的函数)是否仍然是“设计犯罪” ? (就像我在“更新#1”中所做的那样)