Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / -1 / 1
Регистрация: 10.09.2016
Сообщений: 115

Ввод в текстовое поле только положительных цифр

10.12.2016, 20:21. Показов 3096. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите ,пожалуйста. Как сделать ввод в текстовое поле только положительных цифр. У меня не хочет работать данный код.
Пытался
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub CommandButton1_Click()
Dim v1 As Integer, v2 As Integer, time As Integer, s As Integer, pr1 As Integer, pr2 As Integer
v1 = TextBox1.Value
...
Private Sub Text1_Change()
If IsNumeric(Box1) <= 0 Then
MsgBox "Число должно быть положительным"
End Sub
...
End Sub
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2016, 20:21
Ответы с готовыми решениями:

Ввод в текстовое поле только чисел, которые больше 100
Нужно ввести в текстовое поле только цифры больше 100. как это сделать? код, если можно. как разрешить ввод в текстовое поле только...

Ввод в текстовое поле только цифр
Подскажите пожалуйста, как сделать так чтобы в компонент TextBox можно было вводить только цифры, а не буквы?

Ввод в текстовое поле только цифр
Здравствуйте уважаемые обитатели. Как можно сделать, что б в текстовом поле, можно было вводить только цифры? Причем только двузначное...

5
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
10.12.2016, 23:34
Можно так
VB.NET
1
2
3
4
5
If IsNumeric(TextBox1.Text) AndAlso CInt(TextBox1.Text) > 0 Then
    MsgBox(TextBox1.Text & ">0")
Else
    MsgBox("Error")
End If
0
1721 / 1524 / 165
Регистрация: 25.07.2015
Сообщений: 2,617
11.12.2016, 07:37
Лучший ответ Сообщение было отмечено Sh_a_man как решение

Решение

Sh_a_man, приведите весь код пожалуйста
Не понятно , что откуда и куда

Например здесь
VB.NET
1
v1 = TextBox1.Value
и здесь
VB.NET
1
Private Sub Text1_Change()
не к одному и тому же физическому контролу идёт обращение случайно?
и что такое Box1 ?

Не по теме:

ovva,ощущение, что тут проблема не в самой проверке на значение
(вариант TC тоже должен работать), а последовательности действий и путанице имён.



Добавлено через 19 минут
VB.NET
1
2
3
4
5
6
7
8
9
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim v1, v2, time, s, pr1, pr2 As Integer
        If CInt(TextBox1.Text) <= 0 Then
            MsgBox("Число должно быть положительным")
        Else
            v1 = TextBox1.Text
            MsgBox(v1)
        End If
    End Sub
Можно явно и не приводить TextBox1.Text к типу Integer, VB это сделает по умолчанию, т.е.
VB.NET
1
If TextBox1.Text <= 0 Then
даст ровно тот же результат.
1
0 / -1 / 1
Регистрация: 10.09.2016
Сообщений: 115
11.12.2016, 11:54  [ТС]
Цитата Сообщение от Kulma Посмотреть сообщение
приведите весь код пожалуйста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Private Sub CommandButton1_Click()
Dim v1, v2, time, s, pr1, pr2 As Integer
'Считывание коэффицентов из полей формы
v1 = TextBox1.Value
'Проверка на положительное число
If TextBox1.Text <= 0 Then
MsgBox ("Число должно быть положительным")
Else
v1 = TextBox1.Text
End If
'
v2 = TextBox2.Value
'Проверка на положительное число
 
If TextBox1.Text <= 0 Then
MsgBox ("Число должно быть положительным")
Else
v2 = TextBox2.Text
End If
'
 
 
time = TextBox3.Value
If TextBox3.Text <= 0 Then
MsgBox ("Число должно быть положительным")
Else
time = TextBox3.Text
End If
'Расчет расстояния
pr1 = v1 * time
pr2 = v2 * time
If pr1 - pr2 > 0 Then
s = pr1 - pr2
 
'Визуализация необходимых элементов
TextBox4.Visible = True
TextBox4.Visible = True
TextBox4.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
'Визуализация элементов формы
TextBox4.Visible = True
Label5.Visible = True
TextBox4.Text = Str(s)
ElseIf pr1 - pr2 < 0 Then
s = pr2 - pr1
 
'Визуализация необходимых элементов
TextBox4.Visible = True
TextBox4.Visible = True
TextBox4.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
'Визуализация элементов формы
TextBox4.Visible = True
Label5.Visible = True
TextBox4.Text = Str(s)
End If
End Sub
 
Private Sub CommandButton2_Click()
Unload Me
End Sub
 
Private Sub TextBox1_Change()
TextBox4.Visible = False
Label5.Visible = False
End Sub
Только проверяет в самом конце значения и все равно считает значение...или ошибку выдает ...
А планировалось при вводе сразу писать ошибку ,чтобы сразу исправил пользователь ... т.к. если проверку в конце сделать,то ему придется значения заново вписывать,если даже некоторые были правильные.

Добавлено через 10 минут
Цитата Сообщение от Kulma Посмотреть сообщение
приведите весь код пожалуйста
Вот так вот реализовал.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Private Sub CommandButton1_Click()
Dim v1, v2, time, s, pr1, pr2 As Integer
'Считывание коэффицентов из полей формы
v1 = TextBox1.Value
'Проверка на положительное число
If TextBox1.Text <= 0 Then
MsgBox ("Скорость 1 поезда должна быть положительная")
Else
v1 = TextBox1.Text
End If
'
v2 = TextBox2.Value
'Проверка на положительное число
 
If TextBox2.Text <= 0 Then
MsgBox ("Скорость 2 поезда должна быть положительная")
Else
v2 = TextBox2.Text
End If
'
time = TextBox3.Value
If TextBox3.Text <= 0 Then
MsgBox ("Время должно быть положительным")
Else
time = TextBox3.Text
End If
'Расчет расстояния
pr1 = v1 * time
pr2 = v2 * time
If pr1 - pr2 > 0 & pr1 > 0 & pr2 > 0 Then
s = pr1 - pr2
 
'Визуализация необходимых элементов
TextBox4.Visible = True
TextBox4.Visible = True
TextBox4.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
'Визуализация элементов формы
TextBox4.Visible = True
Label5.Visible = True
TextBox4.Text = Str(s)
 
ElseIf pr1 - pr2 < 0 & pr1 > 0 & pr2 > 0 Then
s = pr2 - pr1
 
'Визуализация необходимых элементов
TextBox4.Visible = True
TextBox4.Visible = True
TextBox4.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
'Визуализация элементов формы
TextBox4.Visible = True
Label5.Visible = True
TextBox4.Text = Str(s)
End If
End Sub
 
Private Sub CommandButton2_Click()
Unload Me
End Sub
 
Private Sub TextBox1_Change()
TextBox4.Visible = False
Label5.Visible = False
End Sub
0
1721 / 1524 / 165
Регистрация: 25.07.2015
Сообщений: 2,617
11.12.2016, 12:22
Тоже вариант ))
Хотя можно немного и модернизировать, у вас же по сути одна и та же проверка на все текстбоксы.
Вот посмотрите схожую тему,
12-й пост ваш случай . Его только немного допилить под присвоение значений переменным ))
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.12.2016, 21:03
Visual Basic
1
2
3
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = IIf(InStr(1, "0123456789", Chr(KeyAscii)) > 0, KeyAscii, 0)
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.12.2016, 21:03
Помогаю со студенческими работами здесь

Ввод в текстовое поле только числовых значений
Подскажите, пожалуйста, как прописать к элементу TextBox код, чтобы он выводил числовые значения, как положительные, так и отрицательные?...

Ввод в поле Edit только цифр (целых и вещественных)
Привет участникам форума! Меня интересует как при помощи события OnKeyPress в компонент TEdit можно было б вводить только цифры. На...

Нужно сделать ввод только положительных цифр и любых букв
Заменить нужно replace у input.value = input.value.replace(); так, что бы можно было писать только цифры и буквы без - и знаков №:!(;...

Ввод IP адреса в текстовое поле
Нужна ваша помощь. Нужно правильно и корректно вводить IP адрес в поле LineEdit Я знаю о масках ввода и регулярных выражениях, но если их...

Ввод данных в текстовое поле
Здравствуйте. Как можно ограничить ввод в поле текстового типа, чтобы случайно не вводить цифры? Например, в поле Фамилия или Должность....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru