我想做什么:
- >打开MDI表单
- >关闭项目主表单
- >不关闭申请
我做了什么:
frmMain fm = new frmMain();
fm.Show();
this.Close()
任何帮助将不胜感激! :)
答案 0 :(得分:2)
您可以使用隐藏方法。
尝试这样做:
frmMain fm = new frmMain();
this.Hide();
fm.Show();
或者:
frmMain fm = new frmMain();
this.Hide();
fm.ShowDialog();
this.Show();
后者将打开窗口,一旦关闭,前一个窗口将重新出现。
答案 1 :(得分:2)
我做的是解决这个问题:
this.Hide()
可能不是最好的方法,但仍然。
你甚至可以通过电话回复它
this.Show()
答案 2 :(得分:2)
如果您确实希望关闭主窗体,但让应用程序保持运行,则可以使默认类启动应用程序上下文:
using(MyContext myContext = new MyContext())
{
Applicaton.Run(myContext);
}
其中MyContext
继承自ApplicatonContext
。
然后,您的应用程序上下文可以根据需要加载和关闭表单。我通过一个项目执行此操作,其中我将上下文启动登录表单。只有在成功完成后才能加载主表单。我还允许通过终止主表单并重新加载登录表单来处理程序中的“注销”。
编辑:从评论中,你可能正在寻找的只是.Hide()。这不会导致您的表单卸载,并且对.Show()的调用将恢复它(例如,您可以使用计时器或其他持有对主表单的引用来进行调用的表单)。我更喜欢使用ApplicationContext,因为它负责将程序保存在内存中,远离用户可能尝试关闭的UI元素。