C# 限制文本框允许输入的问题

C# 限制文本框允许输入的问题,c#,winforms,textbox,C#,Winforms,Textbox,我有点小问题!我想限制我的程序的用户在某些文本框中使用除字母以外的任何东西,现在看起来是这样的 private void textBox_Ansprechpartner_Name_TextChanged(object sender, EventArgs e) { if (!System.Text.RegularExpressions.Regex.IsMatch(textBox_Ansprechpartner_Name.Text, "^[a-zA-Z ]")) {

我有点小问题!我想限制我的程序的用户在某些文本框中使用除字母以外的任何东西,现在看起来是这样的

private void textBox_Ansprechpartner_Name_TextChanged(object sender, EventArgs e)
{
    if (!System.Text.RegularExpressions.Regex.IsMatch(textBox_Ansprechpartner_Name.Text, "^[a-zA-Z ]"))
    {
        MessageBox.Show("This textbox may only contain letters.");
        textBox_Ansprechpartner_Name.Text = string.Empty;
    }            
}
这很好,直到你真的想使用backspace,例如,这使得它再次清空文本框,并显示相同的消息。我遇到的另一个问题是,当它检测到不允许输入以及清空字段本身时,它会显示消息框

我尝试通过添加\b来允许退格,但唯一能做的就是禁止所有字母一起使用

我现在的处境有点奇怪,因为到目前为止我所做的一切都没有成功

非常感谢您的帮助

尝试以下方法:

string s = textBox_Ansprechpartner_Name.Text;
//shouldn't be necessary    
//if (string.IsNullOrEmpty(s)) return;
foreach (var c in s)
    if (!char.IsLetter(c))
    {
        textBox_Ansprechpartner_Name.Text = "":
        MessageBox.Show("This textbox may only contain letters.");
        return;
    }