Windows phone7:限制插入文本框的某些键

时间:2012-08-07 15:39:24

标签: c# windows-phone-7 windows-phone-7.1

在我的windows phone7(silverlight)应用程序中,我必须限制插入文本框的符号。基本上我只需要 来插入字母数字字符。

所以我添加的第一步是

InputScope="AlphanumericHalfWidth"然后InputScope="AlphanumericFullWidth"

但在这两种情况下,键盘显示并允许输入以下字符等等。 @ # $ % & % ( ) !

因此,我在文本框KeyDown事件

中实现了以下逻辑
    if (!( (e.PlatformKeyCode >= 48 && e.PlatformKeyCode <= 57) || (e.PlatformKeyCode >= 65 && e.PlatformKeyCode <= 90) || (e.PlatformKeyCode >= 97 && e.PlatformKeyCode <= 122)))
    {
         e.Handled = true;
    }

但问题是它仍然允许为文本框输入以下字符。 @ # $ % & % ( ) !

无法弄清楚我到底要做到这一点。如果有人可以指导我限制除字母数字之外的所有其他字符插入文本框,真的很感激。感谢....

2 个答案:

答案 0 :(得分:1)

您可以进行正则表达式检查以验证(比您当前的方法更清晰)并且您将不得不忽略最后一个字符,即将其从文本框中的文本中删除

答案 1 :(得分:1)

这是因为PlatformKeyCode不是您尝试处理的ASCII值。

使用TextChanged事件处理程序:

private void bla_TextChanged(object sender, TextChangedEventArgs e)
{
    bla.Text = Regex.Replace(bla.Text, @"[^\w\s]", string.Empty);
}

其中bla是文本框名称。