C# 允许退格按钮在已验证的文本框中工作
我有以下代码,只允许文本框中有字母:C# 允许退格按钮在已验证的文本框中工作,c#,.net,winforms,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; } } 如何允许backspace键工作,因为它不允许我在键入后删
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;
}
}
如何允许backspace键工作,因为它不允许我在键入后删除字符您可以使用
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;
}
这是为那些使用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
Private Sub TextBox1\u KeyPress(发送者作为对象,e作为KeyPressEventArgs)处理TextBox1.KeyPress
e、 Handled=e.KeyChar ChrW(Keys.Back)和Not Char.isliter(e.KeyChar)和Not Char.IsDigit(e.KeyChar)和Not Char.IsSeparator(e.KeyChar)
端接头
这有帮助吗?也许这太模糊了,使用Char.IsControl(e.KeyChar)
允许您输入backspace并移动carret(我猜您也希望允许您的用户移动光标)。如果你真的只想允许退格,根据那篇文章,你需要If(e.KeyChar==(char)8)