2012-02-18 1 views
1

Я хочу, чтобы при нажатии кнопки «x» появится окно с сообщением «Вы уверены, что хотите выйти?». затем, если «да» закрывается, и если «НЕТ» остается открытым. поэтому мой код:на событии закрытия формы i am puzzeled

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, чтобы отменить закрытие. На линии перед Exit Sub добавить:

e.Cancel = True 

, и вы не должны делать Me.Close снова. Лучший способ написать ваш блок If будет просто иметь:

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

Спасибо. Я все еще очень новичок в этом. Но я должен был подумать об этом ха-ха. Я знаю, что программирование должно быть вызвано или установлено, и все такое. Я думал, что конец подлодки достаточно хорош. Однако на яркой стороне я никогда этого не забуду. Большое спасибо человеку. – james

+0

Да, я понял, что после того, как я увидел, что моя кнопка «да» ничего не делала, кроме того, что, казалось, перезапускало всплывающее окно. поэтому я изменил me.close уже. Но еще раз спасибо. – james