启动时关闭表单

时间:2014-06-19 13:23:16

标签: c#

我编写了一个应用程序,用于检查启动时是否存在某些文件和文件夹。如果他们不这样做,我会致电this.Close();(因为我要退出完整应用程序)。但是,我在ObjectDisposedError上收到错误:Application.Run(new MainForm());。我认为这与在成功加载表单之前调用.Close有关。我正在从MainForm.cs的公共MainForm()函数执行这些启动检查。这是正确的还是我需要把它放在其他地方?

我尝试过: 使用委托运行它并调用:

public void CloseApplication() {
    if (this.InvokeRequired) {
        this.Invoke(new CloseGameDelegate(CloseApplication));
    } else {
        this.Close();
    }
}
public delegate void CloseGameDelegate();

这仍然给我同样的错误。

使用Application.Exit():这只会打开表单。

1 个答案:

答案 0 :(得分:7)

如果您正在查找特定文件,并且您甚至不想在未找到应用程序的情况下启动您的应用程序,则可以在" Program.cs&中执行检查。 #34;文件。

如果找不到文件,请不要创建和打开MainForm

static void Main()
{
    ...

    var isFileFound = LookForSomeFiles();

    if (!isFileFound)
    {
        MessageBox.Show("Important files were moved or removed. Please contact support.");
        return;
    }

    Application.Run(new MainForm());
}

private static bool LookForSomeFiles()
{
    // perform your check
}