Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
 
Yekaterin@
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
#1

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

18.05.2012, 19:10. Просмотров 39152. Ответов 45
Метки нет (Все метки)

Как запретить ввод букв в 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2012, 19:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как запретить ввод букв в TextBox? (C#):

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

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

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

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

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

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

45
emdroof
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 88
18.05.2012, 19:34 #2
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
3
Yekaterin@
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
18.05.2012, 19:45  [ТС] #3
теперь он не только на буквы ругается, но и когда числа ввожу
0
emdroof
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 88
18.05.2012, 19:51 #4
ругаться не должен, у меня не ругается, а сколько чисел вводишь?потому что int имеет свои пределы
0
Yekaterin@
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
18.05.2012, 19:54  [ТС] #5
все, я уже исправила, спасибо)
0
aleksnice
Заблокирован
18.05.2012, 20:18 #6
А как ты исправила? а то у меня такая же фигня щас, не дает ввести цифры(
0
Yekaterin@
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
18.05.2012, 20:27  [ТС] #7
просто уберите
C#
1
textBox1.Clear();
0
Vega251
290 / 93 / 3
Регистрация: 07.09.2011
Сообщений: 492
Записей в блоге: 2
18.05.2012, 20:29 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну что за изврат? Вот как гораздо проще поступить без всяких там исключений:
C#
1
2
3
4
5
6
7
void TextBox1KeyPress(object sender, KeyPressEventArgs e)
        {
            
            if (Char.IsDigit (e.KeyChar)) return;
            else
            e.Handled=true;
        }
5
Leksey
5 / 5 / 1
Регистрация: 14.03.2011
Сообщений: 55
28.08.2012, 15:33 #9
а как сделать , чтобы "." точку можно было вводить ??
0
Kazbek17
27 / 35 / 3
Регистрация: 06.02.2012
Сообщений: 138
28.08.2012, 15:58 #10
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;
        }
Ну это не самый хороший способ!!!
1
SrgKord
41 / 23 / 0
Регистрация: 14.02.2013
Сообщений: 567
21.06.2013, 20:17 #11
А можно ли сделать так, что бы во всей форме (допустим, там десять полей) нельзя было вводить буквы? Т.е. что бы не создавать десять раз событие для каждого текстбокса, что бы в каждый одно и тоже прописать, а один раз где-то указать, что в этой форме, или в TabControl, или TableLayoutPanel допустимы только числовые значения. Можно?
0
Darty
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 18
24.07.2013, 23:51 #12
Пишешь обработчик для textBox1.KeyPressed, а потом в свойствах остальных текстбоксов выбираешь его.
0
JustBear
5 / 5 / 0
Регистрация: 01.03.2013
Сообщений: 161
25.07.2013, 11:27 #13
Как вариант - вызывать код ниже, например, вот так 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)
            }
        }
1
SrgKord
41 / 23 / 0
Регистрация: 14.02.2013
Сообщений: 567
25.07.2013, 12:04 #14
Darty,
Тоже не то, тоже требует многократного повторения. Хотя и проще.
0
Uurh
3 / 3 / 0
Регистрация: 06.06.2014
Сообщений: 94
07.10.2014, 22:48 #15
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;
        }
Вот самый короткий и простой способ, лучше не найдешь)
1
07.10.2014, 22:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2014, 22:48
Привет! Вот еще темы с ответами:

Запретить ввод с клавиатуры в TextBox - C#
Что надо использовать чтобы при изменения выбранного iteam изменялось textBox1, но при этом стоит на textBox1 cобытие keypress и написано ...

Запретить ввод - в TextBox между цифр - C#
Как зделать, что бы нельзя было вводить минус между цифр или ошибку выдавал MessageBox ?

Возможно ли за один подход запретить ввод букв во множество текстбоксов? - C#
Это такая теоретическая задача, не горит, но знать интересно. Можно ли вместо нескольких операций ввода однотипного кода в события...

Ввод в textbox только букв - C#
Добрый день! Как можно сделать, чтобы в поле textBox вводились только буквы и при этом первая буква всегда была заглавной(большой)??


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.