1. 程式人生 > >C#開啟一個新視窗關閉當前視窗時卡死的問題

C#開啟一個新視窗關閉當前視窗時卡死的問題

這個問題是這樣的,有三個Windows窗體(如圖,以下主窗體Form1不考慮,只考慮Form2、Form3),現在打開了Form2,我想點Form2的“button1"來開啟Form3同時關掉Form2,

    

但出現如下圖的情況,Form2跟Form3兩個視窗不斷反覆出現,卡死了,問題出在哪兒呢。

 

這是因為Form2用了窗體的FormClosing事件,同時要實現開啟新窗關閉當前窗,Form2就關不了(至於這個原因我也沒能弄清楚)。所以要實現開啟新視窗並關閉當前視窗就少使用FormClosing事件吧。我把Form2的Form2_FormClosing事件註釋掉就沒出現剛才的情況了。

        private void button1_Click(object sender, EventArgs e)
        {
            Form3 form3 = new Form3(); form3.Show(); this.Close();
        }

        private void Form2_Load(object sender, EventArgs e)
        {

        }

        private void Form2_KeyPress(object sender, KeyPressEventArgs e)
        {
            Form3 form3 = new Form3(); form3.Show(); this.Close();
        }

        //private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        //{
        //    Form3 form3 = new Form3(); form3.Show(); this.Close();
        //}