Проверка события нажатия клавиши TextBox
Я хотел бы иметь проверку моего текстового поля на основе ввода пользователя (событие нажатия клавиши). Я установил максимальную длину моего текстового поля в 3 символа. Первый символ, введенный пользователем, должен быть символом (от az), а затем два последующих символа должны быть числом. Забой разрешен. Пока у меня есть этот код, но он не работает, как я хотел бы..
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;
}
}
Какие-либо предложения?
2 ответа
Решение
Это должно работать
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 || countChar.Length == 2)
{
e.Handled = !(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back);
}
else if (countChar.Length == 3)
{
e.Handled = e.KeyChar != (char)Keys.Back;
}
else
{
e.Handled = true;
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
countChar = this.textBox1.Text;
if (String.IsNullOrEmpty(this.textBox1.Text))
{
e.Handled = (char.IsLetter(e.KeyChar);
}
else if (countChar.Length == 1 || countChar.Length == 2)
{
e.Handled = e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == (char)8;
}
e.Handled=false;
}