0

我正在使用 Windows 窗体并且我有一个主窗体,当我单击某个按钮时,他会打开一个控制台窗口,它会做一些工作,完成后我想关闭控制台而不关闭所有应用程序(主窗体)。我尝试使用Environment.Exit(1)Destroy()属于Destroy()Create()控制台窗口的功能关闭控制台。和都关闭控制台但也关闭表单Environment.Exit(1)Destroy()我想知道是否有办法只关闭控制台而不关闭整个应用程序

编辑

    private void btSync_Click(object sender, EventArgs e)
    {
        Create();
        ServerSync sycs=new ServerSync();
        Thread sync = new Thread(new ThreadStart(sycs.run));
        sync.Start();
    }

Create()打开运行Socket()线程的控制台窗口。

问题已解决 当我启动线程时,我添加到代码 a 的末尾ThreadName.Abort并在线程外部检查是否ThreadName.IsAlived==false在 if iHide()控制台内部,然后检查Destroy()它的工作原理!

Hide()来自AppDeveloper答案的方法。谢谢你的帮助!

4

2 回答 2

1

而不是使用Environment.Exit()隐藏Console Window

using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();

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

const int SW_HIDE = 0x0;
const int SW_SHOW = 0x5;

public static void HideConsoleWindow()
{
    var handle = GetConsoleWindow();
    ShowWindow(handle, SW_HIDE);

}
于 2013-02-27T12:01:59.633 回答
0

也许有一个 console.hide() 选项?可以试试看。

于 2013-02-27T11:54:35.247 回答