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

本文关键字:窗体 情况下 应用程序 | 更新日期: 2023-09-27 18:37:08

我想做什么:
->打开 MDI 表单
->关闭项目主窗体
->无需关闭应用程序

我做了什么:

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

任何帮助将不胜感激! :)

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

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

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

其中MyContext继承自ApplicatonContext.

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

编辑:从评论中,您可能正在寻找的只是.隐藏()。这不会导致窗体卸载和调用 。Show() 将恢复它(例如,您可以使用计时器或其他包含对主表单的引用的表单进行调用)。我更喜欢使用应用程序上下文,因为它负责使程序在内存中远离用户可能尝试关闭的 UI 元素。

可以使用 Hide 方法。

尝试这样做:

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

或:

frmMain fm = new frmMain();
this.Hide();
fm.ShowDialog();
this.Show();
后者将打开窗口,

一旦关闭,上一个窗口将重新出现。

我为解决这个问题所做的是:

this.Hide()

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

您甚至可以通过致电将其取回

this.Show()