Консультация № 178428
16.05.2010, 15:16
0.00 руб.
0 3 1
Уважаемые эксперты подскажите по скрипту
If MsgBox("Если ... нажмите Да" & Chr$(13) & "Если ... нажмите Нет", vbYesNo + vbDefaultButton1, "ВНИМАНИЕ") = vbYes Then 'vbDefaultButton1 означает, что фокус должен быть на 1 кнопке MsgBox, можно это условие не ставить, по умолчанию фокус будет на 1 кнопке MsgBox
Beep 'если пользователь нажал да
Else
Beep 'если пользователь нажал нет
End If
Почему то у меня на сообщении крест в углу формы сообщения становится недоступным, это как то устанавливается?
Можно ли сделать, чтобы ни на одной кнопке не было фокуса?
Спасибо Эндрю

Обсуждение

Неизвестный
16.05.2010, 16:36
общий
это ответ
Здравствуйте, Ципихович Эндрю!
константа vbYesNo подразумевает, что обязательно должен быть какой-либо ответ, поэтому крестик для закрытия окна недоступен. Если Вы хотите дать пользователю шанс закрыть это окно, то используйте vbYesNoCancel.
Если какое-либо окно активно, то фокус обязательно должен быть на одном из элементов этого окна. [b]MsgBox[/b] устроен так, что фокус у него всегда на какой-либо кнопке, первой по умолчанию, либо на другой, указанной
пользователем. Для того, чтобы фокус был не на кнопке можно создать свою форму, выполняющую те же функции, но с фокусом не на кнопке.
5
Неизвестный
17.05.2010, 15:47
общий
Измалков Эдуард Леонидович:
Спасибо за ответ
И тогда получается чтобы всё расписать, все варианты, надо написать:
If MsgBox("Если ... нажмите Да" & Chr$(13) & "Если ... нажмите Нет", vbYesNoCancel + vbDefaultButton1, "ВНИМАНИЕ") = vbYes Then
Beep 'если пользователь нажал да
ElseIf MsgBox("Если ... нажмите Да" & Chr$(13) & "Если ... нажмите Нет", vbYesNoCancel + vbDefaultButton1, "ВНИМАНИЕ") = vbNo Then
Beep 'если пользователь нажал нет
ElseIf MsgBox("Если ... нажмите Да" & Chr$(13) & "Если ... нажмите Нет", vbYesNoCancel + vbDefaultButton1, "ВНИМАНИЕ") = vbCancel Then
Beep 'если пользователь нажал отмена
End If

Короче конструкции нет???
Неизвестный
18.05.2010, 15:16
общий
Ципихович Эндрю:
Можно воспользоваться конструкцией Select Case

Select Case MsgBox("Если ... нажмите Да" & Chr$(13) & "Если ... нажмите Нет", vbYesNoCancel + vbDefaultButton1, "ВНИМАНИЕ")
Case vbYes: Beep
Case vbNo: Beep
Case Else: Beep
End Select
Форма ответа