Разрешаем ввод в TextBox только цифр.

Язык программирования C#

Для того чтобы разрешить ввод в поле TextBox только цифр в C#, самый простой способ воспользоваться обработчиком события KeyPress.

Вот как это делается:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(Char.IsDigit(e.KeyChar)))
            {
                e.Handled = true;
            }
        }

TextBox только цифры

Комментарии:

Roman 11 August 2009, 11:09 0 0

В примере будет невозможно затереть символ при помощи клавиши BackSpace — вот такой код исправляет эту проблему:

if (!(Char.IsDigit(e.KeyChar)))
            {
                if (e.KeyChar != (char)Keys.Back)
                {
                    e.Handled = true;
                }
            }

Ответить
Madster 12 August 2011, 07:15 0 0

А что нужно задать, чтобы в textbox первым символом вводилась заглавная буква, независимо от нажатых shift и caps lock?

Ответить
Roman 12 August 2011, 08:18 0 0

У TextBox-а на событие TextChanged повесить например вот это:

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text.Length > 0)
            {
                textBox1.Text = textBox1.Text[0].ToString().ToUpper()+textBox1.Text.Substring(1,textBox1.Text.Length-1);
                textBox1.SelectionStart = textBox1.Text.Length;
                textBox1.SelectionLength = 0;
            }
        }
И всё.

Ответить
Nexus 13 January 2011, 02:25 1 0

От себя добавлю (для возможности ввода отрицательных чисел):

{
    if (!(Char.IsDigit(e.KeyChar)) && (e.KeyChar != 45) && (e.KeyChar != (char)Keys.Back)) e.Handled = true;
}

Ответить