我正在使用Visual Studio C#,我陷入困境,使新表单成为主要表单。我需要在关闭时关闭应用程序并且我想在不关闭应用程序的情况下关闭上一个表单。
当前尝试(不起作用):
FormClass newForm = new FormClass();
newForm.Show()
previousForm.Close()
答案 0 :(得分:3)
首先要了解应用程序退出的原因。来自documentation of Application.Run(Form):
此方法添加一个事件处理程序 Closed的mainForm参数 事件。事件处理程序调用 ExitThread来清理 应用
如果您可以隐藏它而不是关闭它
FormClass newForm = new FormClass();
newForm.Show();
previousForm.Hide();
如果您需要关闭它(或者更愿意)
改变Program.cs。要防止Run(Form)添加的事件处理程序终止你,请使用不添加这样的处理程序的Run()重载:
var form = new Form1();
form.Show();
Application.Run(); // The application will not exit when form is closed
但是在这种情况下,当newForm关闭时(或者在你想要退出的任何其他情况下),你需要自己调用Application.Exit()。
答案 1 :(得分:-1)
如果您的目的是使用类似于启动画面的内容,请尝试在后台线程上调用第一个表单,如果完成任务,它们会在任务之后中止该线程。 “第一”表格将被关闭。
或者,只需关闭“splashscreen form”,结束后台主题。
有帮助吗?