powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как разрешить ввод в текстбокс только чисел?
15 сообщений из 15, страница 1 из 1
Как разрешить ввод в текстбокс только чисел?
    #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
Как разрешить ввод в текстбокс только чисел?
    #33107658
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Text1_KeyPress проверь, если KeyAscii не соответствует цифре, то KeyAscii = 0
...
Рейтинг: 0 / 0
Как разрешить ввод в текстбокс только чисел?
    #33107665
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii =  0 
End Sub
...
Рейтинг: 0 / 0
Как разрешить ввод в текстбокс только чисел?
    #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
Как разрешить ввод в текстбокс только чисел?
    #33107711
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда заодно проверяй весь текст

Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Text1.Text & Chr(KeyAscii)) Then KeyAscii = 0
End Sub
...
Рейтинг: 0 / 0
Как разрешить ввод в текстбокс только чисел?
    #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
Как разрешить ввод в текстбокс только чисел?
    #33107762
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исключи из условия код backspace (KeyAscii = 8)
И разделитель целой и дробной части.
...
Рейтинг: 0 / 0
Как разрешить ввод в текстбокс только чисел?
    #33107779
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё! Запахало.

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

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

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

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

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

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

попробуй скопировать/вставить мышью, текст должен прокатить, а для проверки есть событие validate
...
Рейтинг: 0 / 0
Как разрешить ввод в текстбокс только чисел?
    #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
Как разрешить ввод в текстбокс только чисел?
    #33109240
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Достаточно
Код: plaintext
If KeyAscii = минус and Instr(Text1, "-")> 0  then KeyAscii =  0   
...
Рейтинг: 0 / 0
Как разрешить ввод в текстбокс только чисел?
    #33109518
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyДостаточно
Код: plaintext
If KeyAscii = минус and Instr(Text1, "-")> 0  then KeyAscii =  0   


Спасибо , вопрос снят!
...
Рейтинг: 0 / 0
Как разрешить ввод в текстбокс только чисел?
    #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
Как разрешить ввод в текстбокс только чисел?
    #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
Как разрешить ввод в текстбокс только чисел?
    #33109628
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge GavrilovА если текст вставлен мышкой?
Проверить, что вставляется, и запретить, если что...

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

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

-456

он может

4-56
45-6
456-

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

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

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


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