2010-06-21 86 views
5

是否有可能阻止MainForm在啓動應用程序的過程中完全加載(不確定其調用的組件初始化可能如何)?如何在完全加載之前關閉應用程序?

我已經試過:

public MainForm() 
{ 
    if (true) 
    { 
     Application.Exit(); 
     return; 
    } 
    InitializeComponent(); 
} 

public MainForm() 
{ 
    if (true) 
    { 
     this.Close(); 
     Application.Exit(); 
     return; 
    } 
    InitializeComponent(); 
} 

,並沒有 「返回」;以及。

第一個實際上什麼都沒有,而第二個解決方案拋出一個「無法訪問已處理的對象」。錯誤?

是否有可能在完全加載之前關閉整個應用程序?

只是爲了說清楚我想防止應用程序在數據庫連接問題的情況下加載。

+3

也許最好在調用主窗體的構造函數之前檢查數據庫連通性? 比如有一個「加載」啓動畫面,用於檢查應用程序運行的所有先決條件。如果任何檢查失敗,則可以在此時中止。如果所有檢查都通過,主窗體可以加載。 – 2010-06-21 09:22:42

+0

感謝您指出這一點,雖然我沒有考慮到這一點。這可能是我的一般問題的最佳解決方案。 – Marek 2010-06-21 09:39:03

回答

6

here所述嘗試Environment.Exit

9

正如ho1所說,Environment.Exit就是答案。例如:

public MainForm() 
{ 
    if (true) 
    { 
     Environment.Exit(0); 
    } 
    InitializeComponent(); 
} 

這將導致應用程序關閉,如果條件是在if語句true

0

我認爲rob_g給出的答案是要走的路。在我看來,在顯示錶單之前對數據庫進行初始化和驗證是最好的解決方案!您還可以從窗體構造函數中刪除不必要的邏輯,因爲窗體不應該關心數據庫初始化。

+0

正如我在下面提到的那樣,這個問題可能是解決一般問題的最佳方案,我將要開發。 – Marek 2010-06-21 09:42:32

相關問題