У меня есть текстовое поле в VB, которое настроено только для приема только числовых данных, и оно работает, за исключением ДВОИХ конкретных случаев.Текстовый ящик VB, принимающий не числовые данные
Если пользователь предоставляет нечисловую CHAR текстового поля самостоятельно очищает,
Однако, если пользователь сначала предоставляет номер, а затем предоставляет либо «-» или «+»
В текстовом поле будет принимайте это как действительный ввод.
Когда пользователь вводит еще один символ любого типа, то есть число или символ
Затем текстовое поле «реализует» и будет сам ясно.
Мне было интересно, связано ли это с тем, как VB хранит символы «-» и «+»?
Это лучший способ обойти это, чтобы добавить только два исключения, то есть, если вводятся «-» или «+», то самоочищаются?
Или есть более элегантное решение?
спасибо.
Код:
Private Sub TextBox1_Change()
'Textval used as variable from user input
'Numval becomes textval providing the user input is numerical
Dim textval As String
Dim numval As String
textval = TextBox1.Text
If IsNumeric(textval) Then
numval = textval
Else
TextBox1.Text = CStr(numval)
End If
End Sub
[** Это **] (HTTP://stackoverflow.com/questions/15423114/checking-to-see-if-text-box-input-is-numeric?rq=1), возможно, стоит прочитать, поскольку это может быть то, что вы ищете. – Codexer
Использование маскированного текстового поля может быть альтернативным решением того, что было предложено. –