Рейтинг:
2
Hem Raj Thakur
private void amounttext_KeyDown(object sender, KeyEventArgs e)
{
try
{
string name = this.Text.ToString();
if ((e.KeyValue >= 48 && e.KeyValue <= 57)|| e.KeyValue == 17 || e.KeyValue == 46 || e.KeyValue == 45 || e.KeyValue == 18 || e.KeyValue == 91 || e.KeyValue == 32 || e.KeyValue == 93 || e.KeyValue == 16 || e.KeyValue == 13 || e.KeyValue == 8 || e.KeyValue == 33 || e.KeyValue == 34 || e.KeyValue == 35 || e.KeyValue == 36 || e.KeyValue == 37 || e.KeyValue == 38 || e.KeyValue == 39 || e.KeyValue == 40 || e.KeyValue == 192 || e.KeyValue == 27 || e.KeyValue == 144 || e.KeyValue == 96 || e.KeyValue == 97 || e.KeyValue == 98 || e.KeyValue == 99 || e.KeyValue == 100 || e.KeyValue == 101 || e.KeyValue == 102 || e.KeyValue == 103 || e.KeyValue == 104 || e.KeyValue == 105 || e.KeyValue == 106 || e.KeyValue == 107 || e.KeyValue == 108 || e.KeyValue == 109 || e.KeyValue == 110 || e.KeyValue == 111 || e.KeyValue == 112 || e.KeyValue == 113 || e.KeyValue == 114 || e.KeyValue == 115 || e.KeyValue == 116 || e.KeyValue == 117 || e.KeyValue == 118 || e.KeyValue == 119 || e.KeyValue == 120 || e.KeyValue == 121 || e.KeyValue == 122 || e.KeyValue == 123 || e.KeyValue == 145 || e.KeyValue == 19|| e.KeyValue == 20)
{
}
else
{
MessageBox.Show("Only numeric value is allowed !", "" + name.ToString() + "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
string varlenth = "";
varlenth = amounttext.Text.Substring(0, amounttext.Text.Length - 1);
amounttext.Text = varlenth;
amounttext.Select(amounttext.Text.Length, 0);
}
}
catch { }
}
CHill60
Вы, вероятно, получите много отрицательных отзывов за это, так что будет только справедливо, если я сообщу вам о некоторых вещах, которые с этим не так...
1. Это основополагающий принцип. Вы смешали и и или вместе без использования скобок... чего бы вы ожидали в результате if (e.KeyValue >= 48 && e.KeyValue <= 57 || e.KeyValue == 17)
быть? Лучше бы было if ( (e.KeyValue >= 48 && e.KeyValue <= 57) || e.KeyValue == 17)
2. Ключевые значения с 97 по 122 - это строчные буквы ... то есть не числовые. Там также есть несколько других нечисловых символов. См. решение 2-.NET предоставляет функции для определения того, является ли символ цифрой
3. у вас есть опечатки ... e. KeyValue = = 22 вместо e. KeyValue = 122-всегда проверяйте свои решения (или скажите оператору, что у вас их нет)
Hem Raj Thakur
спасибо, сэр, что исправили мою ошибку. но другой код выполняется успешно.
Рейтинг:
1
Shameel
Вы можете писать код двумя способами:
1. В текстовом поле по KeyPress
событие, нажмите на KeyChar и, если он не находится в пределах диапазона для numebers, установите KeyChar в 0.
2. В текстовом поле по Validate
событие, проверьте содержимое с помощью int.TryParse
или double.TryParse
в этом случае может быть и предупреждение пользователя.
Выполнение обоих вышеперечисленных действий гарантирует, что ваше текстовое поле содержит только цифры.