簡化後的簡易範例,有兩個 Form
- MDIForm:MDI Form,為起始 Form,Form1 要在 MDI Form 內
- Form1:在 Load Event 內會呼叫 this.Hide(),Form1 上沒有任何控件
MDIForm Layout:有個 Button 而已,用來呼叫 Form1
MDIForm Code
namespace ExceptionDemo
{
public partial class MDIForm : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = new Form1();
frm1.MdiParent = this;
frm1.Show();
}
}
}
Form1 Codenamespace ExceptionDemo
{
public partial class Form1 : Form
{
private void Form1_Load(object sender, EventArgs e)
{
this.Hide();
}
}
}
實際執行就會拋出 Exception用中斷點去看才發現,原來 Form1 New 出來後,並沒有執行 Load,是 frm1.Show() 才會執行,上述情況,Show() 程序中有 Hide() 會有所衝突,推測跟生命週期有關係,先筆記一下