我使用“添加新项目”在C#中创建了两个表单。 Form1是我的默认开场表格。我正在使用以下代码切换到form2:
Form1 class:
Form form2= new form2();
this.Hide();
form2.Show();
Form2 class:
我应该怎么做才能再次打开相同的form1而不创建form1的新瞬间?
答案 0 :(得分:3)
您应该将此实例传递给form2,并在时机到来时将其.Show()
。
答案 1 :(得分:2)
一个简单的解决方案可能是以模态方式显示第二个表单,然后在第二个表单关闭时使第一个表单可见,如下所示:
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
this.Hide();
form2.ShowDialog();
this.Show();
}
}
public partial class Form2: Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Close();
}
}
将这项工作非模态地留作练习:)
答案 2 :(得分:1)
当您执行 form2.hide()时,您实际上隐藏而非销毁 所以你创建的实例仍然存在,所以你可以用来再次显示它
如果您使用 form2.dispose(),则必须创建新实例
答案 3 :(得分:1)
在后面的form2代码中,在构造函数
中添加参数Form2(Form form1)
{
//use form1 object here
//you can declare a variable of Form1 in Form2 and use it everywhere in the scope of form2
}
然后初始化form2的对象:
Form form2 = new Form(this);
this.Hide();
form2.show();