принимать только цифры и точки при нажатии - PullRequest
0 голосов
/ 23 апреля 2020

привет, я хочу понять этот код ... я просто беру его копию в мое рабочее пространство

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if ((e.KeyChar > (char)Keys.D9 || e.KeyChar < (char)Keys.D0) && e.KeyChar != (char)Keys.Back && e.KeyChar != '.')
    { 
        e.Handled = true; 
    }
    //Edit: Alternative
    if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back && e.KeyChar != '.')
    {
        e.Handled = true;
    }
}

1 Ответ

0 голосов
/ 23 апреля 2020

Проще говоря, ключевое событие отправляется в цепочку обработчиков событий. Всякий раз, когда кто-то говорит: «Я справился», цепь останавливается. Таким образом, когда нажатие клавиши выходит за пределы диапазона чисел, а не возврата или пробела, этот код устанавливает e.Handled в значение true, и цепочка останавливается. Это означает, что обработка события прекращается, а ключ не отображается в текстовом поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...