3

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

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;
}
}

我怎样才能让退格键起作用,因为它不允许我在输入后删除字符

4

2 回答 2

3

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

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

如果您特别需要检查chars + Delete,请使用以下命令:

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!Char.IsLetter(e.KeyChar) && e.KeyChar != (char)Keys.Back)
        e.Handled = true;
}
于 2013-03-10T20:38:58.770 回答
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
于 2015-07-23T20:31:52.390 回答