gpt4 book ai didi

c# - C# 中的多个子和父窗体

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:23 26 4
gpt4 key购买 nike

我有 6 种形式(假设是 F1、F2、F2a、F2b、F2c、F2d)

我正在尝试将 F2a - F2d 作为 F2 的子级,而 F2 parentform 是 F1F1 子窗体是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.参数 1:无法从“GUI_X.F2”转换为“System.Windows.Forms.MainMenu”

那么为什么它不适用于 F2F2a - F2d 而它适用于 F1F2 ?我放错了什么吗?我该如何解决这个问题?

我是 C# 的新手,如果有人能帮助我并尽可能简单地解释它,我将不胜感激。

如果这有助于我使用 Windows 窗体 项目。

提前致谢。

编辑

对不起,我忘记在 F2* 中初始化 oF,感谢@S_I_R 的回答。但还是不能解决问题

最佳答案

请您验证 this.oF 的类型是否为 F2* 类中的 F2

public F2* (F2 parentForm) 
{
InitializeComponent();

this.oF = parentForm;
}
private F2 oF; //Make sure this is F2 not F1 or other

编辑:

只需在 F2 类中声明 F2a-F2d 私有(private)对象,然后在需要时显示它们

public class F2
{
private F2a f2a;
private F2b f2b;
public F1 oF;
public F2(F1 parent)
{
InitializeComponent();
this.oF = parent;
f2a = new F2a(this);
f2b = new F2b(this);
}

// Now you call F2a - F2d from any method
public void ShowF2a()
{
f2a.ShowDialog();
}

关于c# - C# 中的多个子和父窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23225329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com