在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被自动关闭了。因此要关闭的窗口不能用Application.Run创建。要在关闭一个窗口的同时打开 ...
在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被自动关闭了。因此要关闭的窗口不能用Application.Run创建。如何使用Hide 只是隐藏,其实进程还被占用着 之类或者Close 这个操作会把所有窗体关闭,因为属于同一个线程 是达不到我们需要 ...
2016-10-21 14:55 0 5387 推荐指数:
在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被自动关闭了。因此要关闭的窗口不能用Application.Run创建。要在关闭一个窗口的同时打开 ...
使用常规方法的话这个功能很难实现,一般只能隐藏并不能关闭。应为你要是先关闭当前那么新窗口就打开不了了,先打开关闭再关闭也并不能关闭,下面使用线程完美解决这个问题 ...
...
依次打开settings => Appearance & Behavior => System Settings ,找到 Reopen projects on startup 选项,改为 New window 或 Ask 即可 ...
添加一个按钮,并为按钮添加点击事件(注:Frm_Main为需要跳转的窗口名字) ...
一、在stdafx.h文件中,添加: #include "Form2.h" 二、在按钮响应事件中添加如下代码: Form2 ^f = gcnew Form2();f->Sho ...
Application.ExitThread();是退出当前线程。 首先默认情况下我们的程序是单线程的,this.hide();后把当前窗体隐藏起来了, 然后main.showdialog();模态弹出新窗口。 这个时候线程不会继续执行(被阻塞了),直到我们关闭了新 ...
FrmMain main = new FrmMain(); main.Owner = this; this.Hide(); main.ShowDialog(); Application.ExitThr ...