То, что делает этот код, говорит, что если не нажата цифра и она не является управляющим символом, пометьте событие как обработанное, чтобы дальнейшая обработка не могла произойти.
Таким образом, если нажата цифра, обработаноустановите в значение false, чтобы событие проходило и позволяло происходить нормальной логике обработки нажатия клавиши.
В качестве пояснения см. комментарии Эдвина де Коннинга, установка параметра Обращено в значение True предотвратит возникновение нажатий клавиш при их маркировке.событие как уже обработано.Вот почему операции не являются.
Оператор логически эквивалентен:
e.Handled = !(char.IsDigit(e.KeyChar) || !char.IsControl(e.KeyChar))
Так что, если символ является либо цифрой, либо управляющим символом (например, Ctrl + C), пишитене обработать событие.
Однако этого недостаточно для предотвращения ввода нецифровых символов, поскольку операции вырезания и вставки все равно будут работать.Как предположил Эдвин де Конниг, вы можете посмотреть на MaskedEdit