c# – 如何在不让应用程序关闭的情况下关闭主窗体?

我想做的事:
– >打开MDI表单
– >关闭项目主窗体
– >不关闭应用程序

我做了什么:

frmMain fm = new frmMain(); fm.Show(); this.Close() 

任何帮助,将不胜感激! 🙂

如果您确实希望关闭主窗体,但让应用程序保持运行,则可以使默认类启动应用程序上下文:

 using(MyContext myContext = new MyContext()) { Applicaton.Run(myContext); } 

MyContextinheritance自ApplicatonContext

您的应用程序上下文可以根据需要加载和关闭表单。 我在一个项目中执行此操作,我在其中创建了一个登录表单。 只有在成功完成后才能加载主表单。 我还允许通过终止主表单并重新加载登录表单来处理程序中的“注销”。

编辑:从评论,你可能正在寻找的是.Hide()。 这不会导致您的表单卸载,并且对.Show()的调用将恢复它(例如,您可以使用计时器或其他持有对主表单的引用来进行调用的表单)。 我更喜欢使用ApplicationContext,因为它负责将程序保存在远离用户可能尝试关闭的UI元素的内存中。

您可以使用Hide方法。

试着这样做:

 frmMain fm = new frmMain(); this.Hide(); fm.Show(); 

要么:

 frmMain fm = new frmMain(); this.Hide(); fm.ShowDialog(); this.Show(); 

后者将打开窗口,一旦关闭,前一个窗口将重新出现。

我做的是解决这个问题:

 this.Hide() 

可能不是最好的方法,但仍然。

你甚至可以通过电话回复它

 this.Show()