C# 隐藏控制台窗口而不是关闭它

C# 隐藏控制台窗口而不是关闭它,c#,winforms,console,C#,Winforms,Console,我正在开发一个使用控制台窗口和WinForms窗体的程序。用户应该在表单中包含的文本框中编写一些命令,并在控制台中接收结果。一切正常,但有一个问题 当用户试图关闭程序时,仅当用户使用窗体上的“X”按钮时才会发生,而不是控制台。当用户右键单击标题栏并选择“关闭”选项时也会发生同样的情况。当用户在键入Alt+F4时试图关闭控制台时,也会发生同样的情况。当用户试图关闭控制台窗口时,我的程序应该只是隐藏控制台窗口,而不是完全关闭我的程序 我已经有了一些代码来隐藏(并使其再次可见)我的控制台窗口,但我不确

我正在开发一个使用控制台窗口和WinForms窗体的程序。用户应该在表单中包含的文本框中编写一些命令,并在控制台中接收结果。一切正常,但有一个问题

当用户试图关闭程序时,仅当用户使用窗体上的“X”按钮时才会发生,而不是控制台。当用户右键单击标题栏并选择“关闭”选项时也会发生同样的情况。当用户在键入Alt+F4时试图关闭控制台时,也会发生同样的情况。当用户试图关闭控制台窗口时,我的程序应该只是隐藏控制台窗口,而不是完全关闭我的程序

我已经有了一些代码来隐藏(并使其再次可见)我的控制台窗口,但我不确定如何才能实现我想要的。以下是迄今为止我用于隐藏/显示控制台窗口的代码:

[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

const int SW_HIDE = 0;
const int SW_SHOW = 5;

var handle = GetConsoleWindow();
ShowWindow(handle, SW_HIDE);
ShowWindow(handle, SW_SHOW);
有什么办法可以做到这一点吗