When you call Hide()
against Form2
, execution returns to the ShowDialog()
line.
Instead of ShowDialog()
, use Show()
. You can subscribe to the FormClosed()
event to know when the form was closed.
Form1:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
Form2 frm = new Form2();
frm.FormClosed += Frm_FormClosed;
frm.Show();
}
private void Frm_FormClosed(object sender, FormClosedEventArgs e)
{
this.Close();
}
}
Form2:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
Form3 frm = new Form3();
frm.FormClosed += Frm_FormClosed;
frm.Show();
}
private void Frm_FormClosed(object sender, FormClosedEventArgs e)
{
this.Close();
}
}
Form3:
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
}