Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как разрешить ввод в текстбокс только чисел? / 15 сообщений из 15, страница 1 из 1
08.06.2005, 16:30:25
    #33107638
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Столкнулся с такой проблемой. Надо чтобы в поле юзер мог вводить только число. Проверяем типа этого ->



Код: plaintext
1.
2.
3.
4.
5.
6.
If IsNumeric(Me.ComboScale0Up) = True Then
Me.ComboScale0Up = Me.ComboScale0Up
Else
Me.ComboScale0Up = Mid(Me.ComboScale0Up,  0 , Len(Me.ComboScale0Up- 1 ))
End If


Типа я урезаю введенное юзером на 1 символ, но вылетает рантайм ошибка с номером 5.

Подскажите, васик бросил , но щас опять приходиться его мучать!
...
Рейтинг: 0 / 0
08.06.2005, 16:36:53
    #33107658
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
В Text1_KeyPress проверь, если KeyAscii не соответствует цифре, то KeyAscii = 0
...
Рейтинг: 0 / 0
08.06.2005, 16:39:36
    #33107665
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Код: plaintext
1.
2.
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii =  0 
End Sub
...
Рейтинг: 0 / 0
08.06.2005, 16:47:56
    #33107694
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub ComboScale0Up_Change()

On Error GoTo fin

If IsNumeric(Me.ComboScale0Up) = True And Len(Me.ComboScale0Up) >=  1  Then

Else
Me.ComboScale0Up.Text = Mid(Me.ComboScale0Up,  1 , Len(Me.ComboScale0Up.Text) -  1 )

End If

exit_ComboScale0Up_Change:
Exit Sub

fin:


End Sub

Вот такой изврат сделал. Все бы ничего, но курсор падла прыгает в начало поля, как его пнуть в конец поля?

2 Antonariy

Text1_KeyPress проверь, если KeyAscii не соответствует цифре, то KeyAscii = 0

У меня числа вещественные вводятся... Может и правда использовать событие нажатия клавиши...
...
Рейтинг: 0 / 0
08.06.2005, 16:50:45
    #33107711
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Тогда заодно проверяй весь текст

Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Text1.Text & Chr(KeyAscii)) Then KeyAscii = 0
End Sub
...
Рейтинг: 0 / 0
08.06.2005, 16:56:29
    #33107729
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
AntonariyТогда заодно проверяй весь текст

Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Text1.Text & Chr(KeyAscii)) Then KeyAscii = 0
End Sub

Нормально. Пойдет! Вводятся токо числа , но вот казус. пачаму то введенный текст не редактируется ??? Ввели и поправить чо то не даёт ...
...
Рейтинг: 0 / 0
08.06.2005, 17:05:05
    #33107762
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Исключи из условия код backspace (KeyAscii = 8)
И разделитель целой и дробной части.
...
Рейтинг: 0 / 0
08.06.2005, 17:10:27
    #33107779
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Всё! Запахало.

Спасибо тебе.

Джедаи благодарят тебя!

Да пребудет с тобой сила!
...
Рейтинг: 0 / 0
08.06.2005, 17:13:18
    #33107787
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
EternalВсё! Запахало.

Спасибо тебе.

Джедаи благодарят тебя!

Да пребудет с тобой сила!

попробуй скопировать/вставить мышью, текст должен прокатить, а для проверки есть событие validate
...
Рейтинг: 0 / 0
09.06.2005, 12:47:27
    #33109184
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Короче вот как в конце концов слепил

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
'замена точки на запятую
If KeyAscii =  46  Then KeyAscii =  44 

If Not IsNumeric(ComboScale0Down.Text & Chr(KeyAscii)) Then

If KeyAscii <>  8  And KeyAscii <>  46  And KeyAscii <>  45  Then KeyAscii =  0 


Else

End If


Все пучком , юзер по ошибке вводит точку она автоматом меняется на запятую. Минус разрешил, но вот последняя мелочь , юзер может ввести два и более минусов... Наверное надо через Mid считать скоко минусов уже есть и если 1 то рубить KeyAscii = 0
...
Рейтинг: 0 / 0
09.06.2005, 13:02:27
    #33109240
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Достаточно
Код: plaintext
If KeyAscii = минус and Instr(Text1, "-")> 0  then KeyAscii =  0   
...
Рейтинг: 0 / 0
09.06.2005, 14:20:17
    #33109518
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
AntonariyДостаточно
Код: plaintext
If KeyAscii = минус and Instr(Text1, "-")> 0  then KeyAscii =  0   


Спасибо , вопрос снят!
...
Рейтинг: 0 / 0
09.06.2005, 14:23:24
    #33109525
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
AntonariyТогда заодно проверяй весь текст

Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Text1.Text & Chr(KeyAscii)) Then KeyAscii = 0
End Sub
А если текст вставлен мышкой?
...
Рейтинг: 0 / 0
09.06.2005, 14:27:03
    #33109539
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Serge Gavrilov AntonariyТогда заодно проверяй весь текст

Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Text1.Text & Chr(KeyAscii)) Then KeyAscii = 0
End Sub
А если текст вставлен мышкой?

Тогда жопа... Но текст мышой вставлять не будутююю

Я еще один баг нашел, ничего не мешает юзеру ввести число неверно, напр.

-456

он может

4-56
45-6
456-

и тогда стопор. Выходит, что если есть минус не в начале , то его надо пихнуть в начало строки если он в др месте...

Блин А я думал просто все...
...
Рейтинг: 0 / 0
09.06.2005, 14:49:41
    #33109628
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод в текстбокс только чисел?
Serge GavrilovА если текст вставлен мышкой?
Проверить, что вставляется, и запретить, если что...

EternalТогда жопа... Но текст мышой вставлять не будутююю

Я еще один баг нашел, ничего не мешает юзеру ввести число неверно, напр.

-456

он может

4-56
45-6
456-

и тогда стопор. Выходит, что если есть минус не в начале , то его надо пихнуть в начало строки если он в др месте...

Блин А я думал просто все...

Ты уж определись в каком формате число будет. Или не мучай текстбокс и возьми MaskEdBox
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как разрешить ввод в текстбокс только чисел? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]