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

时间:2018-04-18 09:20:49

标签: 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 ]"))
    {
        MessageBox.Show("This textbox may only contain letters.");
        textBox_Ansprechpartner_Name.Text = string.Empty;
    }            
}

哪个工作正常,直到你真的想要使用退格键,这使得它再次使用相同的消息清空文本框。我遇到的另一个问题是,当它检测到输入被禁止时以及清空字段本身时它会显示消息框。

我尝试通过添加\ b来允许退格,但唯一能做的就是不再使用字母。

我有点奇怪的情况,因为到目前为止我没有尝试过任何事情。

非常感谢帮助

1 个答案:

答案 0 :(得分:0)

试试这个:

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