Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
1

Запрет ввода в текстбокс кроме цифр от 1 до 9

28.03.2017, 14:01. Показов 2441. Ответов 10
Метки нет (Все метки)

Добрый день!
Подскажите, как можно запретить ввод в текстбокс всего (букв и символов, в т.ч. и запятых) кроме цифр от 1 до 9
Заранее спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2017, 14:01
Ответы с готовыми решениями:

Запрет ввода символов кроме цифр в TextBox
как запретить ввод букв и остальных символов кроме цифр в textbox'e

Запрет ввода всего кроме положительных цифр
Пожалуйста, помогите разобраться. Необходимо разрешить ввод только чисел (положительных). в коде:...

Запрет ввода всех символов кроме цифр и запятой
Здравствуйте как можно сделать так чтобы в textBox можно было бы вводить с клавиатуры лишь цифры и...

Запрет ввода любых символов кроме цифр в консоли
Ребята подскажите пожалуйста можно ли как-то разрешать ввод в консоль только цифр. Я делаю проверку...

10
904 / 661 / 318
Регистрация: 23.10.2016
Сообщений: 1,538
28.03.2017, 16:08 2
Лучший ответ Сообщение было отмечено _Faradey как решение

Решение

Кликните здесь для просмотра всего текста
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
class MainForm : Form
{
    public MainForm()
    {
        var tb = new TextBox { Parent = this };
        
        bool changedFromProgram = false;
        string oldText = tb.Text;
 
        tb.TextChanged += (_, __) =>
        {
            if (changedFromProgram)
            {
                changedFromProgram = false;
                return;
            }
 
            if (tb.Text.Where(ch => ch < '1' || ch > '9').Any())
            {
                changedFromProgram = true;
                tb.Text = oldText;
                tb.SelectionStart = tb.Text.Length;
            }
            
            oldText = tb.Text;
        };
    }
}
2
68 / 68 / 28
Регистрация: 12.09.2013
Сообщений: 237
28.03.2017, 16:11 3
TopLayer,

Не по теме:

C#
1
+= (_, __) =>
Часто встречаю такую конструкцию, не могли бы вы направить, где про нее почитать?

0
TopLayer
28.03.2017, 16:20
  #4

Не по теме:

Цитата Сообщение от Harttman Посмотреть сообщение
Часто встречаю такую конструкцию, не могли бы вы направить, где про нее почитать?
гуглите лямбда выражения, события, делегаты

0
Harttman
28.03.2017, 16:28
  #5

Не по теме:

Цитата Сообщение от TopLayer Посмотреть сообщение
(_, __)
Это имена переменных object и EventArgs?

0
TopLayer
28.03.2017, 16:30
  #6

Не по теме:

Цитата Сообщение от Harttman Посмотреть сообщение
Это имена переменных object и EventArgs?
ага

0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
28.03.2017, 16:31  [ТС] 7
У меня текстбокс в юзерконтроле, этот код в обработчик текстбокса прописать?
0
904 / 661 / 318
Регистрация: 23.10.2016
Сообщений: 1,538
28.03.2017, 16:33 8
Цитата Сообщение от _Faradey Посмотреть сообщение
этот код в обработчик текстбокса прописать
То, что с 12-й строки. Переменные в 7-8 строках сделайте полями класса.
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
28.03.2017, 16:48  [ТС] 9
Еще момент а как сделать, чтобы можно было ввести допустим цифру 10, но нельзя ввести 0 (или 000)?
0
904 / 661 / 318
Регистрация: 23.10.2016
Сообщений: 1,538
28.03.2017, 16:53 10
_Faradey, напишите метод, который проверяет, корректен ли текст или нет. Потом подставьте вызов этого метода вместо условия в 18 строке.
0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
28.03.2017, 17:13  [ТС] 11
Решил проблему так:
C#
1
2
3
4
5
6
7
8
9
10
11
private void IsDigit_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (char.IsDigit(e.KeyChar) && (sender as TextBox).Text == "0")
            {
                (sender as TextBox).Text = e.KeyChar.ToString();
                e.Handled = true;
                (sender as TextBox).Select(1, 0);
            }
            if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8)
                e.Handled = true;
        }
Всем спасибо!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2017, 17:13

Запрет ввода всех букв и цифр кроме некоторых в StringGrid
Допустим есть 4 слова: красный, синий, зелёный, белый. От каждого слова мне надо отсечь по первой...

Запрет ввода в ячейки DataGridView символов кроме цифр и ","
Добрый день, коллеги! Есть DataGridView1. есть запрет редактирования столбцов: Private Sub...

Запрет ввода символов в едит, кроме комы
вот есть код который запрещает ввод символов в едит кроме комы void __fastcall...

Запрет ввода всего кроме русских букв
Как запретить ввод в консоль всего кроме русских букв? Помогите, пожалуйста :)


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru