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

标签 c# winforms

我想做的事:
->打开一个MDI窗体
->关闭项目主窗体
->不关闭应用程序

我做了什么:

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

如有任何帮助,我们将不胜感激! :)

最佳答案

如果你真的想关闭主窗体,但让应用程序继续运行,你可以让你的默认类启动应用程序上下文:

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

其中 MyContext 继承自 ApplicatonContext

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

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

关于c# - 如何在不关闭应用程序的情况下关闭主窗体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004152/

相关文章:

c# - 服务器客户端发送/接收简单文本

c# - SHGetFileInfo : Description for a files extension too short

c# - TextBox 中不显示换行符

c# - 标签文本向上移动

c# - ASP.Net WebApi STA模式

c# - 将 OData 过滤器与 C# MVC 4 Web Api 和主干一起使用

c# - 使用 Word Interop 在列表前插入文本

c# - VS 设计时错误 - 类型 'ICustomType[]' 的对象无法转换为类型 'ICustomType[]'

c# - StackExchange.Redis StringSet 最大数组大小

c# - .net c# APIController 属性测试