2013-02-27 85 views
0

我与Windows窗体工作,我有一个主形式,当我点击一些按钮,他打开一个控制台窗口是做了一些工作,当它完成我想要关闭控制台而不关闭所有应用程序(主窗体)。我尝试用Environment.Exit(1)或属于Destroy()Create()控制台窗口的功能Destroy()关闭控制台。在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()线程控制台窗口。

问题解决了 当IM启动线程我添加到代码ThreadName.Abort结束,外螺纹我检查ThreadName.IsAlived==false和里面的,如果我Hide()控制台,然后Destroy()及其著作!

AppDeveloper答案Hide()方法。 感谢您的帮助!

+3

请后打开控制台窗口,可以做一些工作的代码。 – 2013-02-27 11:50:22

+0

请张贴代码'无效的主要()' – 2013-02-27 11:53:06

回答

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); 

} 
+0

但我需要关闭控制台怎么一回事,因为当插座靠近我想关闭控制台,让需要当用户再次打开控制台。 – 2013-02-27 12:17:29

+0

ü可以关闭句柄插座,并清除控制台窗口,它会寻找新的希望! – 2013-02-27 12:43:23

0

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

+1

没有。通常人们会将答案作为答案发布如果它是一个猜测,也许只是评论:) – James 2013-02-27 11:58:51

相关问题