我有一个Windows窗体应用程序,可以从命令行调用或用作GUI。命令行选项仅用于安排程序运行已保存的任务,因此如果使用命令行选项,我不希望GUI启动。
static void Main()
{
//code to parse the command line options
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
try
{
Application.Run(new MainForm());
}
}
public MainForm()
{
//Loading data from a file into the form.
If (ArgumentList.Length >0)
{
//do command line-requested tasks
this.close();
}
else
{
//do GUI tasks
}
}
如何在不抛出ObjectDisposedException实例的情况下关闭MainForm窗口?如果我在
之后使用任何东西Application.Run(new MainForm());
它不会运行,因为该表单已打开,并且在该行之后没有任何内容运行,直到表单关闭。我试过了
this.Hide();
而不是
this.Close();
但是this.Hide()在这种情况下似乎没有做任何事情,因为表单仍然显示。我知道我不应该尝试从表单中删除表单(跨线程),但如果我不希望GUI表单显示是否从命令行调用。
答案 0 :(得分:2)
您应该将该代码移至Main()
,并在不需要时完全避开该表单。