2010-06-21 78 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

相关问题