Вы также можете добавить проверку, чтобы разрешить управляющие символы:
if (Char.IsControl(e.KeyChar) != true && Char.IsNumber(e.KeyChar) != true)
{
e.Handled = true;
}
Обновление: в ответ на комментарий человека-б к коду, он / она предлагает следующий стиль (который я также лично написал бы):
if (!Char.IsControl(e.KeyChar) && !Char.IsNumber(e.KeyChar))
{
e.Handled = true;
}