现在,我有两个表单,名为form1和form2,在form1中有一个按钮,当我单击它时,然后打开form2
private void button1_Click(object sender, EventArgs e)
{
Ges.produit.Add(p);
Form3 f= new Form3();
f.dataGridView1.Rows.Clear();
foreach (var item in Ges.produit)
{
f.dataGridView1.Rows.Add(item.Id, item.Name, item.Qty, item.Prac, item.Prav, item.Disc);
}
this.MdiParent = f.MdiParent;
f.Show();
this.Hide();
}
问题:在form2中,我单击它时创建了一个按钮,form2关闭并返回到form1而不打开另一个form1。怎么办?这个
答案 0 :(得分:0)
您可以通过以下几种方式执行此操作,一种方法是将父表单的引用传递给其构造函数中的子表单,然后在关闭此表单时调用子表单调用show。
实现此目的的另一种方法是在父表单中创建子表单,同时还连接子表单的FormClosed事件以重新显示父表单。
以下是这两种方法的示例
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnShowForm2_Click(object sender, EventArgs e)
{
var form2 = new Form2(this);
this.Hide();
form2.Show();
}
private void btnShowForm3_Click(object sender, EventArgs e)
{
var form3 = new Form3();
form3.FormClosed += (o, args) =>
{
this.Show();
};
this.Hide();
form3.Show();
}
}
public partial class Form2 : Form
{
private readonly Form1 _form1;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 form1)
:this()
{
_form1 = form1;
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
_form1.Show();
}
}