我编写了一个应用程序,用于检查启动时是否存在某些文件和文件夹。如果他们不这样做,我会致电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()
:这只会打开表单。
答案 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
}