Страницы: 1
RSS
Запретить переход на следующий TextBox при определенном условии, Не получается сохранить фокус с помощью SetFocus и события AfterUpdate
 
Здравствуйте, уважаемый эксперты!
Помогите пожалуйста решить задачу.
В форме имеются несколько TextBox, которые последовательно заполняются.
Не получается реализовать следующее:
Если пользователь ввел "0" и переходит на следующее поле, то вылетает соответствующий MsgBox, некорректный TextBox очищается, а фокус остается на месте.
Код
Private Sub Количество_AfterUpdate()
    If Количество <= 0 Then
        MsgBox "Введите число больше нуля"
        Количество = ""
        Количество.SetFocus
        Exit Sub
    End If
End Sub
Такой подход не срабатывает, фокус все равно переходит на следующий TetxtBox.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
 
Попробуйте поменять событие и добавить отмену (Cancel):
Код
Private Sub Количество_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Количество <= 0 Then
        MsgBox "Введите число больше нуля"
        Количество = ""
        Cancel = True
        Количество.SetFocus
        Exit Sub
    End If
End Sub
 
Юрий М, работает, большое спасибо!
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
 
Только не забывайте: в TextBox всегда текст )
Страницы: 1
Наверх