【问题标题】:.NET: Windows Forms + Console / Prevent closing.NET:Windows 窗体 + 控制台/防止关闭
【发布时间】:2024-05-23 10:10:02
【问题描述】:

我有一个使用 AllocConsole 打开控制台的 Windows 窗体应用程序。它工作正常,但问题是当我通过单击“X”按钮关闭控制台时,整个应用程序也会退出,但我希望只有控制台窗口应该关闭并且应用程序应该像往常一样继续。有什么办法吗?

【问题讨论】:

    标签: .net forms console


    【解决方案1】:

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

    alloc'd 控制台上的 X 按钮的作用类似于 WinForm 上的 X 按钮 - 我猜它会触发 Form_Closing() 事件。

    您需要该事件处理程序中的一些逻辑来决定是否实际关闭表单。一种可能性:抓住鼠标位置,看看它是否在窗体的边界框内。如果是,则认为表单的 X 已被单击,然后关闭应用程序。如果鼠标不在窗体内,则推断控制台 X 已被单击,并调用 FreeConsole。

    这个我没试过。

    【讨论】:

    • 不起作用。控制台窗口不会触发 Form_Closing 事件。我也尝试过 Application.ApplicationExit 事件,但无法取消该事件。
    • 你到底想做什么?可以通过这种方式打开的控制台非常简陋,我一直认为它主要用于诊断或调试。这真的是您想在应用的 UI 中公开的内容吗?
    最近更新 更多