我有6个表单(假设为F1,F2,F2a,F2b,F2c和F2d)。
我想把F2a到F2d作为F2的子表单,而F2的父表单是F1,F1的子表单是F2。
我尝试过什么:
F1
我想把F2a到F2d作为F2的子表单,而F2的父表单是F1,F1的子表单是F2。
我尝试过什么:
F1
private void button1_Click(object sender, EventArgs e)
{
F2 nX = new F2(this);
this.Visible = false;
nX.Visible = true;
}
F2
public F2(F1 parentForm)
{
InitializeComponent();
this.oF = parentForm;
F2a nA = new F2a(this); //It give me error as i will describe down there.
}
public F1 oF;
F2a - F2d
public F2* (F2 parentForm) //Well lets just say * stand for the letter of each Form
{
InitializeComponent();
this.oF = parentForm;
}
public F2 oF;
在F2上,它给了我两个错误:
1.最佳重载方法匹配'GUI_X.F2a.F2a(System.Windows.Forms.F2)'有一些无效的参数
2.参数1:无法将'GUI_X.F2'转换为'System.Windows.Forms.MainMenu'
那么为什么它对于F1到F2有效,而对于F2a到F2d无效?我放错了什么吗?我该如何解决这个问题?
我是C#的新手,如果有人能帮助我并尽可能简单地解释一下,我将不胜感激。
如果这有所帮助,我正在使用Windows Form项目。
提前感谢您的帮助。
编辑
对不起,我忘记在F2 *中初始化oF,感谢@S_I_R的答案。但仍然无法解决问题。
this.oF
需要是一个base
System.Windows.Form
或自定义的基础类型吗? - Cam Brucepublic class F2 : baseclass
。 - Saysepublic partial class F1 : Form
,F2public partial class F2 : Form
,F2a - F2d与F2相同,后跟它们的字母。 - Tommy Aria PradanaF2A
构造函数期望一个MainMenu
作为参数,我猜测你有第二个构造函数,例如public F2A(MainMenu mm)
,它认为你正在尝试使用它。你可以尝试重新组织你的构造函数,使表单构造函数在菜单之前,然后选择清理解决方案,接着再编译解决方案,或许会成功。 - Sayse