如何使TextBox只接受字母字符?

Lij*_*ina 18 c# textbox winforms

如何才能TextBox使用空格只接受字母字符?

V4V*_*tta 17

您可以尝试处理KeyPress文本框的事件

void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back);
}
Run Code Online (Sandbox Code Playgroud)

另外说如果你想删除一些文本允许退格,这应该对你来说非常好

编辑

上面的代码不适用于我相信你将不得不使用TextChanged事件的字段中的粘贴,但是当你必须删除不正确的字符或突出显示它并将光标放在用户的位置时会更复杂一些进行更正或者也许您可以在用户输入完整文本并关闭控件后进行验证.


fav*_*tti 15

您可以使用以下代码段:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    if (!System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "^[a-zA-Z ]"))
    {
        MessageBox.Show("This textbox accepts only alphabetical characters");
        textBox1.Text.Remove(textBox1.Text.Length - 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 似乎不太好用。如果我添加一个字母,然后添加一个数字/空格/任何它都会让我满意的正则表达式(以字母开头)。 (2认同)

小智 5

private void textbox1_KeyDown_1(object sender, KeyEventArgs e)
{
    if (e.Key >= Key.A && e.Key <= Key.Z)
    {
    }
    else
    {
       e.Handled = true;
    }
}
Run Code Online (Sandbox Code Playgroud)