【发布时间】:2021-04-10 13:12:34
【问题描述】:
我有一个Form1、Form2 和Form3、Form1 是主要形式。
程序从Form1 开始,当我单击“下一步”按钮时,Form2 被调用,Form1 隐藏。
内部Form1:
Form2 form2 = new Form2(this);
this.Hide();
form2.Show();
在Form2 内部有一个“退出”和一个“下一步”按钮。当我点击退出按钮时,Form2 被关闭并返回到Form1,取消隐藏它。
在Form2 内部和部分类内部Form2:
private Form parent;
public Form2(Form caller)
{
parent=caller;
}
退出按钮:
this.Close();
parent.show();
然后在Form2 的“下一步”按钮上,我调用Form3 并关闭Form2:
Form3 form3 = new Form3();
this.Close();
form3.Show();
现在我在Form3 中,如何从Form3 中取消隐藏/显示Form1?
我知道我必须在这里列出我尝试过的解决方案,但我只是从 OOP 开始,我一直在尝试这样做。我尝试了几件事,但没有一个是有意义的,也不知道该怎么做。
澄清一下,我不想创建Form1 的新实例,我只想显示已经创建的实例。
非常感谢任何帮助。
【问题讨论】:
-
您的 form2 构造函数接受一个 Form 参数,但是当您创建
new Form2()时,您不提供它。为什么?错字?两个构造函数?如果您的流程适用于 Form1->2,为什么不将相同的技术应用于 Form3? -
关闭和隐藏表单也没什么区别
-
是的,抱歉,Form2 构造函数中有错字。 Form1 就像一本书的索引,Form2 和 3 就像页面,所以程序的流程是每当你关闭一个页面时,你就会返回索引。 Form2 是 Index 的“下一页”,而 Form3 是 Form2 的下一页,这就是为什么我无法在通过 Form2 时使用相同的技术从 Form1 转到 Form3。
-
当然可以; form2 知道索引,所以它可以告诉 form3 索引。任何 formX 都可以返回索引,因为在创建时创建 formX+1 的 formX 知道索引并且可以告诉创建的表单索引。索引因此无休止地传递
标签: c#