15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как разрешить вводить в Text Box только цифры

Часто, для того, чтобы разрешить пользователю в текстовом поле вводить только цифры, используется проверка вводимого текста. Лучший способ сделать такую проверку, это использовать событие Change(). Однако, функция IsNumeric() имеет некоторый недостаток. Например, если использовать простую процедуру:

Private Sub Text1_Change()
If Not IsNumeric(Text1.Text) Then
    Text1.Text = ""
End If

то если пользователь введёт число -333, то для элемента управления это не будет являться числом, так как начинается с тире. Следующая функция исправляет этот недостаток:


Private Sub Text1_Change()
If Not ValidateNumeric(Text1.Text) Then
    Text1.Text = ""
End If
End Sub

Private Function ValidateNumeric(strText As String) _
    As Boolean
ValidateNumeric = CBool(strText = "" _
    Or strText = "-" _
    Or strText = "-." _
    Or strText = "." _
    Or IsNumeric(strText))
End Function