允许退格按钮在经过验证的TextBox中工作

时间:2013-03-10 20:31:22

标签: c# .net winforms

我有以下代码只允许文本框中的字母:

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
  Char pressedKey = e.KeyChar;
  if (Char.IsLetter(pressedKey))
 {
// Allow input.
e.Handled = false
}
  else
e.Handled = true;
}
}

如何允许退格键工作,因为它不能让我在键入后删除字符

2 个答案:

答案 0 :(得分:2)

您可以使用Char.IsControl(...)检查按下的键是否为控制角色,如下所示:

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!Char.IsLetter(e.KeyChar) && !Char.IsControl(e.KeyChar))
        e.Handled = true;
}

如果您特别需要检查字符+删除,请使用:

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!Char.IsLetter(e.KeyChar) && e.KeyChar != (char)Keys.Back)
        e.Handled = true;
}

答案 1 :(得分:0)

这适用于使用VB.net的用户。有一个奇怪的转换,我从未遇到过让我花了一段时间才弄清楚。

这允许数字,字母,退格和空格。

Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
    e.Handled = e.KeyChar <> ChrW(Keys.Back) And Not Char.IsLetter(e.KeyChar) And Not Char.IsDigit(e.KeyChar) And Not Char.IsSeparator(e.KeyChar)
End Sub