2013-04-24 4 views
-1

나는 숨기고 싶은 폼을 시작하는 콘솔 앱을 실행하고 있지만, 계속 실행하면 (키 누름시 .exe 실행) 계속 작동합니다. ...C# 폼을 숨기지 만 활성 상태로 유지

Form1 f1 = new Form1(); 
f1.Show(); 
foreach (Form f in Application.OpenForms) 
{ 
    if (f.Name == "Form1") 
     f.Hide();  
     //f.visible = false; 
} 

및 중 하나가 작동하지 않았다의 Form_Load 숨기기 또는 표시를 설정하려고

아이디어 : 여기

이 작동하지 않습니다 내 코드?

+0

워크 플로 표시 방법 콘솔에서이 워크 플로를 어떻게 호출 했습니까? – David

+0

@David, 당신은 무엇을 의미합니까? –

+4

왜 양식이 필요합니까? [global keyboard hook] (http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook)을 사용하지 않는 이유는 무엇입니까? –

답변

0

이렇게하면 가죽이 잘 형성되어 활성 상태를 유지합니다.

this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false

+1

그건 실제로 그것을 숨기지 않습니다. 이제 작업 표시 줄 바로 위까지 최소화됩니다. – LarsTech

+0

아니요! 작업 표시 줄 뒤에 숨어 있으므로 보이지 않습니다. –

3

WinForms을 잘못 사용하려고 생각합니다. golden hammer이 아닙니다.

이 AntiPattern은 선호되는 도구 또는 개념의 오용을 초래합니다. 개발자와 관리자는 기존 접근법에 익숙하고 더 적합한 것을 배우고 적용하기를 꺼려합니다. 창문이 (내 생각에 좋은 이유) 활성화되지 않은 경우 Golden Hammer

WinForms

는 키보드 입력을 수신하도록 설계되지 않았습니다.

살펴볼 내용은 Global Keyboard Hook입니다.

+0

감사합니다. –

+0

@DrewSalesse 어떻게 보입니까? 코드가 ['Application.Exit documentation'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.application.exit (v = vs.71) .aspx)로 작동하고 있습니다. 'Form.Closed 및 Form.Closing 이벤트는 Application.Exit 메서드가 호출되어 응용 프로그램을 종료 할 때 발생하지 않습니다.'원하는 내용을 해킹 할 수있는 대답이 있어도 내 대답은 계속 유지됩니다. 당신은'WinForms '이 무엇인지에 대한 것이 아닌 무언가를하려고합니다. 충분한 담당자를 얻었을 때 자신의 답변을 추가하고 받아 들일 필요가 있다고 느끼면, 그것은 당신의 권리이지만, 나는 정중하게 반대합니다. –

+0

당신 말이 맞아 ... 사실, 이건 내가 원하는 (그리고 나는 키보드 후크를 사용하고있다) 덕분에 ... this.WindowState = FormWindowState.Minimized; 이.ShowInTaskbar = false –

관련 문제