2012-04-08 90 views
0

有谁知道如何检查文本框中是否有非字母字符?Windows Phone TextBox验证

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

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

任何帮助,高度赞赏。

+0

看看RegularExpressions:http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.95).aspx – 2012-04-08 16:58:31

+0

你可以设置键盘只允许信吗? – 2012-04-08 17:00:08

回答

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

Char.IsLetter method on MSDN

+0

您也可以处理TextChanged以识别复制粘贴。 – 2012-04-09 04:21:25