2016-02-27 69 views
0

爲什麼這首代碼工作創建一個窗口對象,然後調用它

MessageBox.Show("No Applicants\nFirst Add applicants with dataentryaccount"); 
MainWindow mw = new MainWindow(); 
mw.Show(); 
this.Close(); 

但是這第二個代碼並不顯示兆瓦窗口

MessageBox.Show("No Applicants\nFirst Add applicants with dataentryaccount"); 
MainWindow mw = new MainWindow(); 
this.Close(); 
mw.Show(); 

雖然當逐行調試時,所有這些行都會被執行。

+0

因爲您在顯示下一個窗口之前關閉了'main'程序窗口 – Olivarsham

+0

但是,當調試一行一行地執行線路時, 會執行? 你將如何證明 –

+0

它必須退出當前所謂的過程.. – Olivarsham

回答

1

當前執行塊的EventHandler or procedure還有一些要執行的代碼。
您尚未撥打return停止執行當前程序。

Close()只是另一個不會立即刪除表單的函數。所以它繼續執行當前的代碼。

請檢查this答案瞭解更多詳情。

+0

嗯,所以你的意思是說新的窗口會被創建,但是由於它沒有更多的引用,它最終將被垃圾收集器 –

相關問題