2012-02-18 1 views
1

"x"버튼을 클릭하면 "정말 끝내시겠습니까?"라는 메시지 상자가 나타납니다. "예"이면 닫고 "아니오"이면 열어 둡니다. 그래서 내 코드는 다음과 같습니다.양식 닫는 이벤트에 나는 수수께끼입니다

Dim a As Integer 
a = MessageBox.Show("Are you sure you want to exit?", _ 
        "Vice Versa 1.0", _ 
        MessageBoxButtons.YesNo, _ 
        MessageBoxIcon.Information) 
If a = vbYes Then 
    Me.Close() 
Else 
    Exit Sub 
End If 

"아니오"를 클릭하면 내 프로젝트를 디버깅 할 때 여전히 내 프로그램이 종료됩니다. 이것은 단지 디버그 모드에 있거나 여기에 뭔가 빠져 있기 때문입니까?

(EDIT :) 경고 또는 오류도 표시되지 않습니다.

메시지 상자가 표시 될 때 게임을 일시 중지시킬 수있는 방법이 있습니까? 사용자가 키보드의 "p"키를 누르는 것만으로도 작업 할 수 있습니다. 또한 "p"를 누르지 않고도 메시지 상자가 표시되면 게임이 일시 중지되기를 원합니다.

답변

2

닫기를 취소하려면 Cancel 속성을 설정해야합니다.

e.Cancel = True 

을하고 다시 요문을 할 필요가 없습니다 : Exit Sub 전에 줄에 추가 할 수 있습니다. If 블록을 작성하는 더 좋은 방법은 다음과 같습니다.

a = MessageBox.Show(....) 
If a = DialogResult.No Then 
    e.Cancel = True 
End If 
+0

감사합니다. 나는 아직도 이것에 아주 새롭다. 그러나 나는 그 하하를 생각해야했다. 나는 모든 것을 프로그래밍하는 것이 필요하다는 것을 알고있다. end sub가 충분하다고 생각했습니다. 밝은면에서, 나는 결코 그것을 잊지 않을 것이다. 고마워요. – james

+0

그래, 내가 본 후에 "예"버튼이 팝업을 다시 시작하는 것 외에는 아무 것도하지 않았다는 것을 알았습니다. 그래서 나는 이미 나를 바꾸었다. 그러나 다시 한번 감사드립니다. – james

관련 문제