2013-07-30 3 views
2

저는 다중 양식 응용 프로그램을 작성 중이며 응용 프로그램을 닫지 않고 Form1을 닫을 수 있기를 바랍니다.
지금은 this.Hide을 사용하여 양식을 숨 깁니다. 모든 양식을 닫을 수 있도록 설정하는 방법이 있습니까? 아니면 모든 양식이 닫힌 경우에만 응용 프로그램이 존재해야합니까?C# 메인 양식이 닫히면 응용 프로그램이 종료됩니다.

나는 어느 정도 그 점을 기억하고 있다고 생각하지만, Visual Studio와 C#이 아닐 수도 있습니다.

+0

'Program.cs'을보세요. 3 행에 사용 된 양식은 "루트"양식이며이 양식이 닫히면 프로그램이 닫힙니다. 양식을 실행 한 후에 프로그램에서 수행 할 작업이 없으므로 프로그램이 닫힙니다. 양식을 닫은 후 프로그램에서 수행 할 작업을 원하십니까? – gunr2171

+0

가능한 중복 http://stackoverflow.com/questions/5599097/close-a-windows-form-with--exiting-the-entire-application?rq=1 – jrbeverly

답변

7

Program.cs 파일에는 Application.Run(new Form1())과 같은 행이 있습니다. 또한 통화 당신이 원하는 Application.Exit()에 의해 명시 적으로 응용 프로그램을 닫아야합니다

var main_form = new Form1(); 
main_form.Show(); 
Application.Run(); 

로 교체합니다.

+1

감사합니다! 그것은 효과가 있었지만 다음과 같이해야했다 : 'var main_form = new Form1();' 'main_form.Show(); 'Application.Run(); 아니면 그냥 시작했다. 양식이 보이지 않습니다. 다시 한 번 감사드립니다! – WolfyD

+1

네, 잊어 버렸습니다.대답에 추가했습니다. – dmay

0

마지막 모양의 창을 닫을 때 사용자가 프로그램을 닫으려는 것을 알 수 없으므로 다중 형식 응용 프로그램에는 메뉴, 도구 모음 중 하나에서 명확한 종료 옵션이 있어야합니다 (사용자가 파일 열기/새 창 열기)

사용자가 요청하지 않은 것을 자동으로 수행하는 응용 프로그램은 좌절/혼란을 사용하고 응용 프로그램을 다시 여는 데 시간을 소비 할 수 있습니다.

심지어 사용자는 응용 프로그램이 닫히지 않았으므로 응용 프로그램이 어떻게 든 추락했다고 생각할 수 있습니다.

+0

고마워, 그거 알아두면 좋을거야. 실제로 응용 프로그램을 사용자에게 친숙하게 만들기 위해 창 크기를 조정하는 기능을 제한하지는 않지만 선형 응용 프로그램이며 특정 흐름이 있습니다. 사용자가 다음 단추를 클릭하면 다음 양식으로 이동하여 이전 단추를 닫으려고합니다. 나는 그것을 숨길 수 있었지만, 사용자가 다시 볼 수없는 보이지 않는 형태의 CPU 시간을 낭비하지 않기를 바란다. – WolfyD

+0

또한 사용자는 모든 양식에서 응용 프로그램을 종료 할 수 있습니다. – WolfyD

+0

@WolfyD 단일 흐름 인 경우 BACK, NEXT, CANCEL 버튼을 사용하여 일반적인 마법사 인터페이스를 구현하지 않으시겠습니까? 원하는 상태에 도달했을 때 NEXT 버튼이 FINISH로 변경됩니다. –

0

은 감동적인을 바탕으로 내가 당신이, 다음, BACK 단일 양식의 전형적인 마법사 인터페이스를 구현 버튼을 취소하는 것이 좋습니다

응용 프로그램

의 하나의 흐름 이죠. 예 충분한 정보가 수집 된 위해

가 원하는 상태에 도달 한 경우, 상기 NEXT 버튼은 FINISH 버튼으로 변경된다.

사용자가 누르는 모든 시간 /FINISH가 버튼 윈도우가

을 닫습니다 그리고 당신은 여전히 ​​여러 가지 모양하려는 경우 여전히 가질 수를,이에 동시에 여러 흐름을 그냥 마무리 할 수 ​​취소 또는 원하는 것을 취소하십시오. 당신이 당신의 형태, 모두에 배치하면 마지막 닫을 때, 응용 프로그램이 종료됩니다

private void Form1_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    if (Application.OpenForms.Count == 0) 
     Application.Exit(); 
    } 
} 

:

+0

예, 생각했습니다. 그러나 모든 양식에 다른 컨트롤과 정보가 필요하기 때문에 설정하는 것이 쉽지는 않을 것입니다. 사용자가 다음 양식을 만들면 응용 프로그램이 계속 작동하고 [x], 작업 관리자 또는 종료 버튼을 사용하여 양식을 닫으려는 경우 전체 응용 프로그램이 닫히기 때문에 혼동이 생기지 않습니다. – WolfyD

3

한 가지 전략은 다음과 같은 일을 할 것입니다.

+0

5 행에 여분의'}'이 있습니다. – GGG

관련 문제