有谁知道如何检查文本框中是否有非字母字符?Windows Phone TextBox验证
如果在文本框中的任何符号或数字等 - 我想做一个:
MessageBox.Show("Please enter only letters");
任何帮助,高度赞赏。
有谁知道如何检查文本框中是否有非字母字符?Windows Phone TextBox验证
如果在文本框中的任何符号或数字等 - 我想做一个:
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;
}
}
您也可以处理TextChanged以识别复制粘贴。 – 2012-04-09 04:21:25
看看RegularExpressions:http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.95).aspx – 2012-04-08 16:58:31
你可以设置键盘只允许信吗? – 2012-04-08 17:00:08