2013-06-18 2 views
1

사용자가 MessageBox.Show(Message);을 사용하여 메시지를 표시하는 C# GUI 응용 프로그램을 가지고 있지만 사용자가이 프로그램을 클릭하지 못하고 PC 종료를 요청하면 종료가 차단됩니다. 열려있는 대화 상자가 시스템 종료를 차단하지 못하게하려면 어떻게합니까?열기 대화 상자가 Windows 종료를 막습니다.

+0

초점이 맞지 않을 때 자동으로 닫으시겠습니까? – ChiefTwoPencils

+0

어떤 버전의 Windows입니까? – TheVillageIdiot

+1

이것은 정상적인 동작입니다. 'MessageBox'는 사용자에게 무엇인가를 요구하는 것을 사용자에게 알려주고 있습니다 (대화 상자를 보았다는 것을 'OK'를 클릭하는 것만으로도). 자신의 시스템을 종료하기 전에 사용자가해야 할 일을하고'MessageBox'를 닫으라고 지시하거나 대신 [WM_QUERYENDSESSION] (http : // msdn. microsoft.com/en-us/library/windows/desktop/aa376890%28v=vs.85%29.aspx) 메시지를 보내고 닫습니다. –

답변

3

WPF를 언급하지 않았으므로 WinForms를 사용하고 있다고 가정합니다. 닫는 동작을 제어하려면 MessageBox를 사용할 수 없습니다. 메시지 상자로 작동하고 ShowDialog 메서드를 사용하여 자신의 화면을 표시해야합니다. 화면은 Windows가 종료 될 때 감지 할 FormClosing 이벤트를 처리 할 수 ​​

private void MainForm_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     if (e.CloseReason == CloseReason.WindowsShutDown) 
     { 
      //... 
     } 
    } 

그래서 화면이 경우 닫고 아마도 가까운 신호를 다른 유형의 다른 조치를 취할 수 있도록 할 것입니다. 화면이 닫히지 않도록하려면 FormClosingEventArgs 매개 변수의 취소 플래그를 true로 설정하십시오.

관련 문제