Form_Closed 이벤트 발생 시 메세지박스 예 아니오 중 아니오를 누르면 숨겨지는 현상이 있습니다.
조회수 767회
if (MessageBox.Show("종료하시겠습니까?", "안내", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
Application.Exit();
}
위 처럼 코드를 작성을 했습니다. 당연히 No가 호출 되면 프로그램이 숨기기라던가(Hide함수호출) 아니면 종료가 되는 등의 이벤트가 안 나타날 줄 알았는데 Hide()함수가 있는 것 처럼 숨겨지더라고요.(프로세스에는 남아있음) 이를 방지 하는 방법이 있나요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
방지라는 것이...무슨 의미인지...사용자가 윈도우 상단의 x를 클릭한다던거 혹은 프로그램의 종료 버튼을 클릭했을때 이벤트 처리입니다.DialogResult 결과가 No 면 종료 로직을 건너뛰면 됩니다.
아래와 같이 FormClosing 처리를 하면 됩니다.
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { var result = MessageBox.Show("프로그램을 종료하시겠습니까?", "종료 확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (DialogResult.No == result) e.Cancel = true; }
댓글 입력