Я хотел бы получить подтверждение в своем текстовом поле на основе ввода пользователей (событие нажатия клавиши). Я установил максимальную длину текстового поля на 3 символа. Первым символом, введенным пользователем, должен быть символ (от a-z), а затем два следующих символа должны быть числом. Возврат разрешен. Пока у меня есть этот код, но он не работает, как хотелось бы.Проверка события нажатия клавиш TextBox
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
countChar = this.textBox1.Text;
if (String.IsNullOrEmpty(this.textBox1.Text))
{
e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back);
}
else if (countChar.Length == 1)
{
e.Handled = e.KeyChar == (char)Keys.Back;
}
else if (countChar.Length == 2 || countChar.Length == 3)
{
e.Handled = e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == (char)8;
}
}
Любые предложения?
Вы не возражаете, уточняя "не работает"? На самом деле это не очень нам. Ошибка компиляции? Исключение времени выполнения? Неожиданное поведение? Если поведение неожиданно, лучший способ понять это - пройти через код. Мы не можем этого сделать. – tnw
Кроме того, похоже, что вы хотите попробовать некоторое регулярное выражение для проверки содержимого текстового поля. Может быть проще, чем проверять каждое нажатие клавиши. – tnw
О, извините, что я только хотел сказать, что у него неожиданное поведение. Когда я ввожу первый символ в текстовое поле, он принимает, если он является символом, но не числом. Но когда я ввожу второй символ в текстовое поле, он не принимает, является ли это символом или числом. Я пробовал переходить через код и все еще смущен. Извините за мой плохой английский. – user3233787