Ввод в TextBox только цифр

Небольшой кусок кода, который поможет сделать так, чтобы в текстбокс на форме можно было вводить только цифры.
Добавляем на событие KeyPress текстбокса следующую функцию:

 // Функция запрета ввода в текстбоксы не цифр
 private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
 {
 // Если это не цифра.
 if (!Char.IsDigit(e.KeyChar))
 {
 // Запрет на ввод более одной десятичной точки.
 TextBox tb = (TextBox)sender;
 if (e.KeyChar != '.' || tb.Text.IndexOf(".") != -1)
 {
 e.Handled = true;
 }
 }
 }
 // ------------------------------------------

Поблагодарить автора

8 Responses to Ввод в TextBox только цифр

  1. Очень плохо...

    ctrl+v не сделать;

    Backspace не сделать;

    точка вводиться и вызывает ошибку;

  2. Ну вобще то можно в условие добавить проверку на системный ключ, и всё будет работать.

  3. Вот на разных форумах нарыл и немного доработал может кому поможет, да есть недоработка можно в начале 0 вводить до бесконечности это надо исправить. :!:

    // Проверка на ввод только чисел в textBox- ах, положительных и вещественных чисел

    private void textBox_KeyPress (object sender, KeyPressEventArgs e)

    {

    // Обьявление место конкретного TextBox локальной переменной

    TextBox tx = (TextBox) sender;

    // Условие на выплнение вода только цифр и знака (-) только перед числом и только одного, а так же (.) только хотябы после одного знака и только одной

    if (!(Char.IsDigit (e.KeyChar)) && !((e.KeyChar == '.') && (tx.Text.IndexOf («.») == -1) && (tx.Text.Length != 0)))

    {

    // обработка кнопки BACKSPACE

    if (e.KeyChar != (char) Keys.Back)

    {

    e.Handled = true;

    }

    }

    }

    //фильтр на ввод значений отрицательного

    private void tempBox_KeyPress (object sender, KeyPressEventArgs e)

    {

    // Обьявление место конкретного TextBox локальной переменной

    TextBox tb = (TextBox) sender;

    // Условие на выплнение вода только цифр и знака (-) только перед числом и только одного, а так же (.) только хотябы после одного знака и только одной

    if (!(Char.IsDigit (e.KeyChar)) && (e.KeyChar != '-' || tb.Text.IndexOf («-») != -1 ||tb.Text.Length > 0))

    {

    // обработка кнопки BACKSPACE

    if (e.KeyChar != (char) Keys.Back)

    {

    e.Handled = true;

    }

    }

    }

  4. епт...а так никак ?

    regex numbrs = new Regex (@"^\d+s");

    if (!numbrs.itmatch (бла)){

    че за буквы?

    }

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>