1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27

Как запретить ввод букв в TextBox?

18.05.2012, 19:10. Показов 162977. Ответов 60
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как запретить ввод букв в textBox? Вот эта конструкция неверно работает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 public void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            try 
            {
            char s = Convert.ToChar(textBox1.Text);
            if ((s <= '0') || (s >= '9'))
                MessageBox.Show("Вы ввели символ! Пожалуйста,введите цифру");
              }
                catch(System.FormatException)
            {
                MessageBox.Show("Вы ввели символ! Пожалуйста,введите цифрy");
                }
        }
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.05.2012, 19:10
Ответы с готовыми решениями:

Как запретить ввод букв и символов в TextBox?
Как запретить ввод букв и символов в TextBox ? :scratch:

Запретить ввод букв в TextBox
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar &gt;= '0') &amp;&amp; (e.KeyChar &lt;= '9')) ...

Как запретить ввод данных в textBox ?
Собственно в заголовке и заключается весь вопрос. Я так понимаю это как то делается с помощью события KeyPress, но вот как именно, вопрос....

60
 Аватар для emdroof
6 / 6 / 0
Регистрация: 11.04.2011
Сообщений: 88
18.05.2012, 19:34
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 private void textBox1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                int s = Convert.ToInt32(textBox1.Text);
            }
            catch (System.FormatException)
            {
                MessageBox.Show("Вы ввели символ! Пожалуйста,введите цифрy");              
            }    
            textBox1.Clear();
    
        }
количество введенных символов будет зависеть от типа textbox
4
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
18.05.2012, 19:45  [ТС]
теперь он не только на буквы ругается, но и когда числа ввожу
0
 Аватар для emdroof
6 / 6 / 0
Регистрация: 11.04.2011
Сообщений: 88
18.05.2012, 19:51
ругаться не должен, у меня не ругается, а сколько чисел вводишь?потому что int имеет свои пределы
0
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
18.05.2012, 19:54  [ТС]
все, я уже исправила, спасибо)
0
Заблокирован
18.05.2012, 20:18
А как ты исправила? а то у меня такая же фигня щас, не дает ввести цифры(
0
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
18.05.2012, 20:27  [ТС]
просто уберите
C#
1
textBox1.Clear();
0
413 / 100 / 3
Регистрация: 07.09.2011
Сообщений: 532
Записей в блоге: 2
18.05.2012, 20:29
Лучший ответ Сообщение было отмечено как решение

Решение

Ну что за изврат? Вот как гораздо проще поступить без всяких там исключений:
C#
1
2
3
4
5
6
7
void TextBox1KeyPress(object sender, KeyPressEventArgs e)
        {
            
            if (Char.IsDigit (e.KeyChar)) return;
            else
            e.Handled=true;
        }
9
5 / 5 / 1
Регистрация: 14.03.2011
Сообщений: 55
28.08.2012, 15:33
а как сделать , чтобы "." точку можно было вводить ??
0
 Аватар для Kazbek17
1483 / 938 / 454
Регистрация: 06.02.2012
Сообщений: 2,865
28.08.2012, 15:58
C#
1
2
3
4
5
6
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
          if(Char.IsNumber(e.KeyChar) | (Char.IsPunctuation(e.KeyChar)))return;
          else
          e.Handled=true;
        }
Ну это не самый хороший способ!!!
2
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
21.06.2013, 20:17
А можно ли сделать так, что бы во всей форме (допустим, там десять полей) нельзя было вводить буквы? Т.е. что бы не создавать десять раз событие для каждого текстбокса, что бы в каждый одно и тоже прописать, а один раз где-то указать, что в этой форме, или в TabControl, или TableLayoutPanel допустимы только числовые значения. Можно?
0
 Аватар для Darty
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 18
24.07.2013, 23:51
Пишешь обработчик для textBox1.KeyPressed, а потом в свойствах остальных текстбоксов выбираешь его.
0
 Аватар для JustBear
7 / 7 / 0
Регистрация: 01.03.2013
Сообщений: 166
25.07.2013, 11:27
Как вариант - вызывать код ниже, например, вот так textBox1_KeyPress(); и Все.

C#
1
2
3
4
5
6
7
8
9
  private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            char ch = e.KeyChar; 
 
            if (!Char.IsDigit(ch) && ch != 8) //Если символ, введенный с клавы - не цифра (IsDigit),
            {
                e.Handled = true;// то событие не обрабатывается. ch!=8 (8 - это Backspace)
            }
        }
3
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
25.07.2013, 12:04
Darty,
Тоже не то, тоже требует многократного повторения. Хотя и проще.
0
5 / 5 / 0
Регистрация: 06.06.2014
Сообщений: 94
07.10.2014, 22:48
C#
1
2
3
4
5
private void IsDigit_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8)
                e.Handled = true;
        }
Вот самый короткий и простой способ, лучше не найдешь)
2
 Аватар для mvs87
15 / 15 / 7
Регистрация: 21.08.2013
Сообщений: 115
30.03.2015, 11:49
Цифры + запятая + работающий BackSpace

C#
1
2
3
4
5
6
        private void TB_rez_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsNumber(e.KeyChar) | (e.KeyChar == Convert.ToChar(",")) | e.KeyChar == '\b') return;
            else
                e.Handled = true;
        }
9
1 / 1 / 2
Регистрация: 22.12.2014
Сообщений: 159
21.05.2015, 18:50
Присоединюсь с вопросом, а как запретить ввод русских символов(букв) ?
0
Эксперт .NET
 Аватар для kolorotur
17819 / 12970 / 3381
Регистрация: 17.09.2011
Сообщений: 21,255
21.05.2015, 19:13
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Цитата Сообщение от eastsida Посмотреть сообщение
а как запретить ввод русских символов(букв) ?
Обработка события KeyPress:
C#
1
2
char c = e.KeyChar;
e.Handled = c >= 'а' && c <= 'я' || c >= 'А' && c <= 'Я' || c == 'ё' || c == 'Ё';
2
16 / 16 / 6
Регистрация: 01.03.2014
Сообщений: 122
23.08.2015, 01:35
Доброго времени суток! К вопросу "Как для всех текстбоксов формы запретить ввод букв или цифр?" Проще всего сделать несколько классов потомков класса TextBox со своими ограничениями и потом использовать их во всех формах проекта.

Для текстбокса в котором только цифры: новый класс ClsDigitTextBox, в нем обработчик.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public class ClsNumericTextBox : TextBox
    {
        private string lastText;
        private double value;
 
 
        public ClsNumericTextBox()
            : base()
        {
            lastText = "0";
            this.Text = "0";
            this.TextAlign = HorizontalAlignment.Right;
            this.TextChanged += new EventHandler(ClsNumericTextBox_TextChanged);
        }
 
        
        void ClsNumericTextBox_TextChanged(object sender, EventArgs e)
        {
            if (!double.TryParse(this.Text, out value)) this.Text = lastText;
            else lastText = this.Text;
        }
     }
Таким образом программируем на основе паттерна: все что связано с объектом программмируется в самом объекте. В форме остается код взаимодействия между объектами.
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
26.08.2015, 18:38
А можно при помощи регулярных выражений определить любой вариант.
Например, ввод только цифр:

C#
1
2
3
4
5
6
7
using System.Text.RegularExpressions;
 
        Regex rx = new Regex(@"\D", RegexOptions.IgnoreCase);
        private void TextBox1_TextChanged(object sender, TextChangedEventArgs e)
        {
            TextBox1.Text = rx.Replace(TextBox1.Text, "");
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.08.2015, 18:38
Помогаю со студенческими работами здесь

Как запретить ввод символа в textbox?
Здравствуйте. Подскажите, пожалуйста, как в событии KeyPress прописать, чтобы ввод символа &quot;;&quot; был невозможен Спасибо

Как запретить ввод некоторых символов в TextBox?
По заданию в TextBox можно вводить числа только в двоичной системе счисления, т.е. только &quot;1&quot; и &quot;0&quot;. Помогите,...

Как запретить ввод нуля первым символом в TextBox?
Доброго времени суток, как запретить ввод нуля первым символом в TextBox?

Массив текстбоксов. Как запретить ввод букв?
Здравствуйте. Подскажите, пожалуйста. Есть массив из текстбоксов 5x5. Нужно заблокировать ввод любых значений кроме 1-9 и клавиши...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru