Как мне сделать программу которая запрещает ввод букв?

string text = textBox1.Text;
        for (int cif2 = 0; cif2 < text.Length; cif2++) {
            for (int cif = 0; cif < 10; cif++)

                if (text[cif2] != Convert.ToChar(cif)) {
                    
                     


                    textBox1.Text = "" ;
                }
        }

Мне нужно сделать так что бы я не мог ввести в текстбокс буквы.Попытался сделать так как на верху пишет индекс за границами масива


Ответы (2 шт):

Автор решения: Andrew

На основе этого примера не сложно написать код который ты хочешь:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    // удалить точку
    if ( e.KeyChar == '.' )
    {
        e.Handled = true;  //отменить ввод
    }
}
→ Ссылка
Автор решения: motpfofs

Есть два варианта решения этой задачи:

  1. Использовать NumericUpDown он автоматически фильтрует вводимые данные и так же предоставляет пользователю использовать кнопки вверх вниз на клавиатуре, чтобы менять значение.
  2. Отслеживать ивенты и предотвращать ввод любых не числовых значений:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
        (e.KeyChar != '.'))
    {
            e.Handled = true;
    }

    // only allow one decimal point
    if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
    {
        e.Handled = true;
    }
}

Если вам нужно ограничить количество символов, которые пользователь может ввести в текст бокс доавьте эту строчку:
textBox1.MaxLength = 2; // this will allow the user to enter only 2 digits

→ Ссылка