Числовое значение TextBox'а

Программирование на Visual Basic for Applications
dimasss
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.08.2005 (Пн) 14:51

Числовое значение TextBox'а

Сообщение dimasss » 18.08.2005 (Чт) 16:52

Как сделать чтоб в TextBox можно было вводить только числовые значения (в Visual FoxPro просто ставил Value в 0 и работало, а в VBA что-то нет)

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 18.08.2005 (Чт) 18:24

Вариант 1: Отслеживать все нажатия клавиш и если клавиша не соответствует цифровой обнулять ее.
Следует также следить за "BackSpace", "Del", "Клавиши управления курсором" и тд. Не забывать также о возможности вставки из буффера.

Вариант 2: (В последнее время полбзуюсь ним)
Вставить обработчик изменения текста:
Код: Выделить всё
Private Sub TextBox1_Change()
Static oldtext As String
If IsNumeric(TextBox1.Text) Or TextBox1.Text = "" Then
    oldtext = TextBox1.Text
Else
    TextBox1.Text = oldtext
End If
End Sub
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

dimasss
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.08.2005 (Пн) 14:51

Сообщение dimasss » 19.08.2005 (Пт) 11:53

SHURUP
спасибо большое

Booozer
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 30.08.2005 (Вт) 17:41
Откуда: Москва

Сообщение Booozer » 31.08.2005 (Ср) 18:56

Private Sub txt_KeyPress(KeyAscii As Integer)
Dim Num As String
Num = "0123456789,"
If KeyAscii > 26 Then
If InStr(Num, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
If InStr(txt.Text, ",") > 0 And Chr(KeyAscii) = "," Then
KeyAscii = 0
End If
End If
End Sub


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 88

    TopList