有谁知道我如何检查文本框中是否有任何非字母字符?
如果文本框中有任何符号或数字等 - 我想做一个:
MessageBox.Show("Please enter only letters");
非常感谢任何帮助。
有谁知道我如何检查文本框中是否有任何非字母字符?
如果文本框中有任何符号或数字等 - 我想做一个:
MessageBox.Show("Please enter only letters");
非常感谢任何帮助。
在文本框的 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;
}
}