1
사용자가 MessageBox.Show(Message);
을 사용하여 메시지를 표시하는 C# GUI 응용 프로그램을 가지고 있지만 사용자가이 프로그램을 클릭하지 못하고 PC 종료를 요청하면 종료가 차단됩니다. 열려있는 대화 상자가 시스템 종료를 차단하지 못하게하려면 어떻게합니까?열기 대화 상자가 Windows 종료를 막습니다.
사용자가 MessageBox.Show(Message);
을 사용하여 메시지를 표시하는 C# GUI 응용 프로그램을 가지고 있지만 사용자가이 프로그램을 클릭하지 못하고 PC 종료를 요청하면 종료가 차단됩니다. 열려있는 대화 상자가 시스템 종료를 차단하지 못하게하려면 어떻게합니까?열기 대화 상자가 Windows 종료를 막습니다.
WPF를 언급하지 않았으므로 WinForms를 사용하고 있다고 가정합니다. 닫는 동작을 제어하려면 MessageBox를 사용할 수 없습니다. 메시지 상자로 작동하고 ShowDialog 메서드를 사용하여 자신의 화면을 표시해야합니다. 화면은 Windows가 종료 될 때 감지 할 FormClosing 이벤트를 처리 할 수
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.WindowsShutDown)
{
//...
}
}
그래서 화면이 경우 닫고 아마도 가까운 신호를 다른 유형의 다른 조치를 취할 수 있도록 할 것입니다. 화면이 닫히지 않도록하려면 FormClosingEventArgs
매개 변수의 취소 플래그를 true로 설정하십시오.
초점이 맞지 않을 때 자동으로 닫으시겠습니까? – ChiefTwoPencils
어떤 버전의 Windows입니까? – TheVillageIdiot
이것은 정상적인 동작입니다. 'MessageBox'는 사용자에게 무엇인가를 요구하는 것을 사용자에게 알려주고 있습니다 (대화 상자를 보았다는 것을 'OK'를 클릭하는 것만으로도). 자신의 시스템을 종료하기 전에 사용자가해야 할 일을하고'MessageBox'를 닫으라고 지시하거나 대신 [WM_QUERYENDSESSION] (http : // msdn. microsoft.com/en-us/library/windows/desktop/aa376890%28v=vs.85%29.aspx) 메시지를 보내고 닫습니다. –