Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/174: Рейтинг темы: голосов - 174, средняя оценка - 4.53
0 / 0 / 1
Регистрация: 03.03.2012
Сообщений: 23

Контроль проверки ввода значений в TextBox

13.09.2012, 02:15. Показов 35119. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно проверить при помощи волидатора ввод в TextBox, является ли введенное значение числом. Подскажите, пожалуйста, как это сделать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.09.2012, 02:15
Ответы с готовыми решениями:

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

Контроль ввода корректных значений
Имею упражнение - прога для пересчета цены из долларов в рубли. Надо проверить, вводит ли юзер на самом деле число. public...

TextBox контроль ввода
Здравствуйте. Подскажите пожалуйста, как сделать, чтобы при вводе пользователем некорректного выражения появлялось окно с ошибкой. Т.е....

12
Просто хороший человек
 Аватар для sannee
392 / 182 / 24
Регистрация: 26.04.2011
Сообщений: 434
13.09.2012, 02:47
Лучший ответ Сообщение было отмечено как решение

Решение

стоп, может вам надо просто сделать так, чтобы в текстбокс вводились только числа?

Добавлено через 6 минут
Если да, то прописываем для текст бокса следующее событие:
C#
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
   private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            // Правильными символами считаются цифры,
            // запятая, <Enter> и <Backspace>.
            // Будем считатьать правильным символом
            // также точку, на заменим ее запятой.
            // Остальные символы запрещены.
            // Чтобы запрещенный символ не отображался 
            // в поле редактирования,присвоим 
            // значение true свойству Handled параметра e
 
            if ((e.KeyChar >= '0') && (e.KeyChar <= '9'))
            {
                // цифра
                return;
            }
 
            if (e.KeyChar == '.')
            {
                // точку заменим запятой
                e.KeyChar = ',';
            }
 
            if (e.KeyChar == ',')
            {
                if (textBox1.Text.IndexOf(',') != -1)
                {
                    // запятая уже есть в поле редактирования
                    e.Handled = true;
                }
                return;
            }
 
            if (  Char.IsControl (e.KeyChar) )
            {
                // <Enter>, <Backspace>, <Esc>
                if ( e.KeyChar == (char) Keys.Enter)
                    // нажата клавиша <Enter>
                    // установить курсор на кнопку OK
                    button1.Focus(); 
                return;
            }
 
            // остальные символы запрещены
            e.Handled = true;
        }
В таком случаи, будет разрешено только ввод чисел, Потом с помощью класса Convert конвертируем в нужный формат полученную строку
9
0 / 0 / 1
Регистрация: 03.03.2012
Сообщений: 23
13.09.2012, 03:07  [ТС]
Это тоже было бы не плохо...только нужно, чтобы и дробные числа вводились. Поэтому пробую написать проверку, содержит ли массив na:
C#
1
2
char[] na = new char[50];
na=TextBox4.Text.ToCharArray();
все элементы массива ma:
C#
1
char[] ma = new char[11]{'0','1','2','3','4','5','6','7','8','9',','};
Добавлено через 10 минут
Полезный код, спасибо!!!

Добавлено через 4 минуты
Вот что у меня получилось, правда не мешало бы проверку на количество запятых включить:
C#
1
2
3
4
5
6
7
8
9
10
11
12
   char[] na = new char[50];
            int ss = TextBox4.Text.Count();
            int gg=0;
            na=TextBox4.Text.ToCharArray();
            char[] ma = new char[11]{'0','1','2','3','4','5','6','7','8','9',','};           
            for (int li = 0; li < ss; li++) 
                for (int ji = 0; ji < 11; ji++) {
                    if (na[li] == ma[ji]) {
                        gg++;  
                    }
                }
            if (gg==ss) args.IsValid = true;
0
8 / 7 / 1
Регистрация: 17.02.2019
Сообщений: 47
07.09.2019, 21:40
А как подключит этот код к текстбоксу? Ибо он как бы есть в проге, но никак не работает.
0
Просто хороший человек
 Аватар для sannee
392 / 182 / 24
Регистрация: 26.04.2011
Сообщений: 434
07.09.2019, 22:01
Цитата Сообщение от TPAKTOPICT Посмотреть сообщение
А как подключит этот код к текстбоксу? Ибо он как бы есть в проге, но никак не работает.
Имеешь ввиду обработчик textBox1_KeyPress к событию нажатия кнопки на клавиатуре ?
1
8 / 7 / 1
Регистрация: 17.02.2019
Сообщений: 47
07.09.2019, 22:09
Именно. Я так понимаю, код работает при каждом нажатии на клаву и вводе в текстбокс символа

Добавлено через 6 минут
А то просто только начал с# учить) вот и не все знаю
0
Просто хороший человек
 Аватар для sannee
392 / 182 / 24
Регистрация: 26.04.2011
Сообщений: 434
07.09.2019, 22:15
Цитата Сообщение от TPAKTOPICT Посмотреть сообщение
Именно. Я так понимаю, код работает при каждом нажатии на клаву и вводе в текстбокс символа
Вот так:
textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress);

Или:

textBox1.KeyPress += textBox1_KeyPress;
1
8 / 7 / 1
Регистрация: 17.02.2019
Сообщений: 47
07.09.2019, 22:18
И в каком именно месте программы это писать? Перед обработчиком?
0
Просто хороший человек
 Аватар для sannee
392 / 182 / 24
Регистрация: 26.04.2011
Сообщений: 434
07.09.2019, 22:21
Цитата Сообщение от TPAKTOPICT Посмотреть сообщение
И в каком именно месте программы это писать? Перед обработчиком?
В конструкторе класса твоей формы после InitializeComponent();
1
8 / 7 / 1
Регистрация: 17.02.2019
Сообщений: 47
07.09.2019, 22:25
Большая благодарность
0
95 / 62 / 22
Регистрация: 11.03.2013
Сообщений: 608
Записей в блоге: 7
08.09.2019, 01:09
Чёт намудрено. А не проще MaskedTextBox использовать и ввести свою маску?
1
Просто хороший человек
 Аватар для sannee
392 / 182 / 24
Регистрация: 26.04.2011
Сообщений: 434
08.09.2019, 01:21
Цитата Сообщение от anomal6 Посмотреть сообщение
Чёт намудрено. А не проще MaskedTextBox использовать и ввести свою маску?
Можно и маску. Зависит от того, что нужно делать при неправильном вводе...
Подняли же тему 2012 года...
0
95 / 62 / 22
Регистрация: 11.03.2013
Сообщений: 608
Записей в блоге: 7
08.09.2019, 01:35
Цитата Сообщение от sannee Посмотреть сообщение
Подняли же тему 2012 года...

Не по теме:

ёшки мартёшки. Всё спать глаза уже не видят количество просмотров

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.09.2019, 01:35
Помогаю со студенческими работами здесь

Контроль ввода в textBox
Здравствуйте, пишу конвертер, возникла такая проблема - нужен ограниченный ввод символов в textBox. Т.е., если пользователь выбирает...

Контроль корректности ввода числа в TextBox
Добрый день! Напишите, пожалуйста, код для проверки элемента textbox на число. Если этот элемент не является числом, то программа...

Контроль ввода ошибочных значений
Как заставить пользователя вводить данные по определенному шаблону, к примеру дату в формате yyyy.mm.dd ?

Организовать контроль ввода значений в программу
Доброе время суток, господа Смотрел программу и появился вопрос, а как можно сделать так, чтобы в оператор write можно было вводить...

Отдельный метод проверки значений TextBox
Здравствуйте уважаемые знатоки! Третий день включил ручника:wall: и не могу найти решение. Университет дал задание написать калькулятор...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru