2013-07-16 5 views
-1

하나의 양식 (Error1.vb)에서 전체 프로그램을 닫으려면 버튼을 클릭하면 다른 프로그램이 닫히지 않습니다. 주 프로그램 창 (form1.vb)을 닫으면 전체 프로그램이 닫힙니다. .전체 프로그램이 닫히지 않음




이 여기에 응용 프로그램에 대한 내 설정 (응용 프로그램, 컴파일) (스크린 샷)이며, 도움이된다면,

Dim proc = Process.GetProcessesByName("Server_Status.vshost") 
    For i As Integer = 0 To proc.Length - 1 
     proc(i).CloseMainWindow() 
    Next i 

그리고 다음은 내 코드입니다

+1

반드시 문제가 해결되지 않는 quickies의 커플. 1) .vshost를 참조하면 프로덕션의 독립 실행 형 실행 파일이 아니라 VS 디버거에서 실행되는 프로세스 만 닫힙니다. 2) for 루프를 뒤집는 것을 고려하십시오. 그렇지 않으면 첫 번째 창을 닫은 후 두 번째 창이 이제 (0)이지만 I가 1로 설정되므로 두 번째 프로세스가 닫히지 않습니다. for 루프를 'For I = proc.Length-1 to 0 step -1'으로 변경하십시오. –

답변

0

MSDN에서 :

클래스에 Main이라는 메서드를 배치하여 응용 프로그램의 시작 클래스로 폼을 사용할 수 있습니다. Main 메서드에서 폼을 만들고 표시하는 코드를 추가합니다. 또한 폼을 실행하려면 Main 메서드에 STAThread 특성을 추가해야합니다. 시작 양식이 닫히면 응용 프로그램도 닫힙니다.

winforms 템플릿에서 새 프로젝트를 만들 때 이것이 기본 동작이라고 가정합니다.

하는 것은 물론 다른 발언을 읽을 수 있는지 확인하십시오 : http://msdn.microsoft.com/en-us/library/system.windows.forms.form.aspx

1

를 양식에 Form1.vb를경우 당신은 실현 않으며 그것은 당신이 모든 당신이해야 할 ... 말 설정처럼 시작 폼입니다 당신이 프로그램을 완전히 닫으려는 경우, 보더 폼에 버튼이 있어도 form1.close()을 닫으십시오. form2.button1.click 이벤트에 form1.close()를 호출하십시오.

편집 : 당신이 그들을 개폐 별도의 스레드 또는 메모리에있는 다른 개체가있는 경우 (form1.close의 폐쇄와 interfier 수 있습니다())

관련 문제