Form2 m_Form2 = null;
private void button1_Click(object sender, EventArgs e)
{
this.Disposed += new System.EventHandler(this.Form_Disposed);
if (m_Form2 == null)
m_Form2 = new Form2();
m_Form2.MdiParent = this;
m_Form2.Show();
}
1 form2 closing
2 form1 closing
3 form2 closed
4 form1 closed
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
MessageBox.Show("form1 closing");
m_Form2.Close();
}
1 form2 closing
2 form1 closing
3 form2 closing
4 form2 closed
5 form2 disposed
6 form1 closed
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
MessageBox.Show("form1 closed");
m_Form2.Close();
}
1 form2 closing
2 form1 closing
3 form2 closed
4 form1 closed
5 form2 closing
6 form2 closed
7 form2 disposed
本文探讨了在C#中两个窗体(Form1和Form2)之间的交互过程,特别是在关闭窗体时触发的不同事件及其顺序。文章通过代码示例展示了如何在主窗体Form1关闭时确保子窗体Form2也正确关闭,并且处理了相应的事件来跟踪每个窗体的状态变化。
827

被折叠的 条评论
为什么被折叠?



