我想要做什么:
- >打开MDI形式
- >关闭该项目主要形式
- >不关闭应用
c# - 如何关闭主窗体而不让应用程序关闭?
我做了什么:
frmMain fm = new frmMain();
fm.Show();
this.Close()
任何帮助,将不胜感激! :)
我想要做什么:
- >打开MDI形式
- >关闭该项目主要形式
- >不关闭应用
c# - 如何关闭主窗体而不让应用程序关闭?
我做了什么:
frmMain fm = new frmMain();
fm.Show();
this.Close()
任何帮助,将不胜感激! :)
如果你真的要关闭的主要形式,但离开了应用程序的运行,你可以让你的默认类启动应用程序上下文:
using(MyContext myContext = new MyContext())
{
Applicaton.Run(myContext);
}
其中MyContext
继承自ApplicatonContext
。
您的应用程序上下文可以根据需要加载和关闭窗体。我在一个项目中执行此操作,我在上下文中启动登录表单。只有成功完成主表单才会加载。我还允许通过终止主窗体并重新加载登录表单来处理程序中的“注销”。
编辑:从评论中,它可能是你正在寻找的是.Hide()。这不会导致您的表单卸载,并且调用.Show()会将其恢复(例如,您可以使用定时器或其他形式持有对主窗体的引用来进行调用)。我更喜欢使用ApplicationContext,因为它负责将程序保存在远离用户可能尝试关闭的UI元素的内存中。
您可以使用隐藏方法。
尝试这样做:
frmMain fm = new frmMain();
this.Hide();
fm.Show();
或者:
frmMain fm = new frmMain();
this.Hide();
fm.ShowDialog();
this.Show();
后者将打开的窗口,一旦被关闭,之前的窗口将再次出现。
谢谢你这个完美的工作,就像其他答案一样简单。谢谢! –
我所做的来解决这个问题是:
this.Hide()
大概没有做到这一点的最好办法,但依然。
你甚至可以把它找回来通过调用
this.Show()
我不明白!我不知道c#中的上下文!请你换一种方式? –
这不是复杂的事情吗?在登录窗口的例子中,您甚至可以在初始化组件之前打开对话框,甚至在初始化组件之前等等。我真的认为他所要查找的只是'Hide()',但我很想听听为什么这是不够的。 – SimpleVar
上下文只是用于管理项目表单的包装器。如果您的项目默认类调用它,您可以启动任何表单或从那里运行任何后台进程。请参阅:http://www.c-sharpcorner。com/UploadFile/johnconwell/ApplicationContexttoEncapsulateSplashScreenFunctionality11232005041406AM/ApplicationContexttoEncapsulateSplashScreenFunctionality.aspx为其使用的示例。 – Godeke