2013-02-27 3 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() 스레드를 실행 콘솔 창을 엽니을 닫지 않고 오직 콘솔을 닫습니다 수있는 방법이 있는지 가 궁금하다.

문제가 해결

메신저 내가 코드 ThreadName.Abort의 끝에와 외부 내가 ThreadName.IsAlived==false 있는지 확인 스레드 및 내부에 추가 스레드를 시작하면 내가 콘솔 다음 Destroy() 그리고 그 작품을 Hide() 경우!

AppDeveloper 대답에서 Hide() 방법. 도움 주셔서 감사합니다.

+3

는 몇 가지 작업을 할 수있는 콘솔 창을 여는 코드를 게시하시기 바랍니다 숨 깁니다. –

+0

'void main()'코드를 게시하시기 바랍니다. –

답변

1

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

하지만 소켓을 닫을 때 콘솔을 닫고 콘솔을 닫고 필요할 때 다시 열 수 있도록 콘솔을 닫아야합니다. –

+0

u는 소켓 핸들을 닫고 콘솔 창을 지울 수 있습니다. 그러면 새 것처럼 보일 것입니다! –

0

아마도 console.hide() 옵션이 있습니까? 그것을 시도 할 수 있습니다. 대신 Environment.Exit()를 사용

+1

없습니다. 일반적으로 사람들은 답변을 답변으로 게시합니다. 추측이라면 어쩌면 그냥 코멘트 :) – James

관련 문제