【发布时间】:2014-04-22 16:36:04
【问题描述】:
我有 6 种形式(比如说 F1、F2、F2a、F2b、F2c、F2d)
我正在尝试将 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 上它给了我 2 个错误
1.'GUI_X.F2a.F2a(System.Windows.Forms.F2)'的最佳重载方法匹配有一些无效参数
2.Argument 1:无法从 'GUI_X.F2' 转换为 'System.Windows.Forms.MainMenu'
那么为什么它不适用于 F2 到 F2a - F2d 而它适用于 F1 到F2 ? 我放错东西了吗?我该如何解决这个问题?
我是 C# 新手,如果有人能帮助我并尽可能简单地解释它,我将不胜感激。
如果这有助于我使用 Windows 窗体 项目。
提前谢谢你。
编辑
对不起,我忘记在 F2* 中初始化 oF,感谢@S_I_R 的回答。 但是还是解决不了问题
【问题讨论】:
-
看起来类型不匹配。
this.oF需要是baseSystem.Windows.Form还是自定义基类型? -
你能把所有的类定义都包含在你的问题中吗?即
public class F2 : baseclass -
@sayse F1
public partial class F1 : Form,F2public partial class F2 : Form,F2a - F2d 与 F2 相同信 -
这两个错误的意思是
F2A构造函数需要MainMenu作为参数,我假设您有第二个构造函数,例如public F2A(MainMenu mm)并且它认为您是尝试使用它,您可能会在重组构造函数方面取得成功,以便表单构造函数首先是菜单之一,然后选择干净的解决方案,然后是构建解决方案 -
嗯,有一点我以前没有意识到,我发现 VS 可以制作存根构造函数(虽然我仍然不知道)并且它解决了我的问题。感谢大家的帮助,我最终是 C# 和 VS 的新手。
标签: c# winforms forms parent-child