gpt4 book ai didi

c# - 启动时关闭表单

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:01 27 4
gpt4 key购买 nike

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

我尝试过的:使用委托(delegate)运行它并调用:

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

这仍然给我同样的错误。

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

最佳答案

如果您正在寻找特定的文件,如果没有找到您甚至不想启动您的应用程序,您可以在“Program.cs”文件中执行检查。

如果找不到文件,请不要费心创建和打开 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
}

关于c# - 启动时关闭表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24307707/

27 4 0
文章推荐: c# - 在 Visual Studio 中使用 WPF 时,如何使 List 变量出现在 DataBinding UI 中?