2009-12-25 30 views
2

我有一个Windows窗体应用程序,打开使用AllocConsole控制台。它工作正常,但问题是当我通过单击“X” - 关闭控制台,整个应用程序也退出,但我希望只有控制台窗口应该关闭,应用程序应该照常继续。有没有办法做到这一点?.NET:Windows窗体+控制台/合闸闭锁

回答

2

有一种方法以编程方式隐藏您已经分配的窗口 - 使用FreeConsole。

的alloc'd控制台上的X按钮就像在你的WinForm的X按钮 - 这将胳肢我猜Form_Closing()事件。

,就需要在该事件处理一些逻辑来决定是否真正关闭了表单。一种可能性:抓住鼠标位置,看看它是否在Form的边框内。如果是,那么就可以断定表单的X被点击了,然后关闭应用程序。如果鼠标不在表单中,则认为控制台X已被点击,然后调用FreeConsole。

我没有尝试这样做。

+0

不工作。 Form_Closing事件不会被控制台窗口触发。我也尝试了Application.ApplicationExit事件,但不可能取消该事件。 – raphaelr 2009-12-25 19:57:23

+1

无论如何,你真的想做什么?可以用这种方式打开的控制台非常简单,我一直认为它对诊断或调试非常有用。这真的是你想在你的应用程序的用户界面中公开的东西吗? – Cheeso 2009-12-25 21:50:23