0

有谁知道我如何检查文本框中是否有任何非字母字符?

如果文本框中有任何符号或数字等 - 我想做一个:

MessageBox.Show("Please enter only letters");

非常感谢任何帮助。

4

1 回答 1

1

在文本框的 KeyPress 事件中,您可以检查字符是否为字母,如果不是则取消按键。这是未经测试的,但应该可以工作。

private void YourTextbox_KeyPress(Object sender, KeyPressEventArgs e)
{
    if(!char.IsLetter(e.KeyChar))
    {
        e.Handled = true;
        MessageBox.Show("Please enter only letters");
    }
}

本质上,您正在测试字符是否是字母,如果是,则允许按键进入操作系统,否则取消按键(通过将e.Handled属性设置为true)。

现在,用户可以通过粘贴包含非字母字符的文本来绕过这一点,因此它更多的是为了更好的用户体验而不是安全性。要在用户单击提交按钮后执行验证,您可以使用遍历字符串来确定是否有任何非字母字符。所以,在你的提交事件中,你可以有这样的事情:

for(int i = 0; i < YourTextbox.Text.Length; i++)
{
    if(!char.IsLetter(YourTextbox.Text[i])
    {
        MessageBox.Show("Please enter only letters");
        break;
    }
}

MSDN 上的 Char.IsLetter 方法

于 2012-04-08T22:29:38.023 回答