我有以下代码只允许文本框中的字母:
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;
}
}
如何允许退格键工作,因为它不能让我在键入后删除字符
答案 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