如何在Windows Phone 8.1中阻止一个特定的密钥

时间:2014-11-26 11:45:23

标签: c# regex windows-phone-8.1 windows-8.1

对不起这个可能很简单的问题,但我发现我什么都不懂。 我只需要在文本框中阻止一个键...让我们说" _" ......所以我想允许除下划线之外的所有标志

这就是我所拥有的......

private void inputName_KeyDown(object sender, KeyRoutedEventArgs e)
{
    if (!Regex.IsMatch(inputName.Text, @"_"))
    {
        e.Handled = true;
    }
}

...但实际上我不明白正则表达式如何运作以及我如何能够满足我的需要。 感谢您的帮助。

我已经解决了这个问题...

inputName.Text = inputName.Text.Replace("_", "");

关于LostFocus这个文本框的事件......但当然这不是很好

2 个答案:

答案 0 :(得分:3)

对于Underscore" _"这是更好的解决方案。 :

private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == (VirtualKey)(189))
    {
         e.Handled = true;
    }
}

其他特殊字符的虚拟键码:

  

分号(;)186 Colon(:) 186 Plus(+)187   等号(=)187逗号(,)188小于号(<)188减号( - )189   下划线(_)189期间(。)190大于号(>)190问题   mark(?)191正斜杠(/)191 Backtick(`)192 Tilde(〜)192   打开方括号([)219打开花括号({)219反斜杠   ()220管(|)220关闭方括号(])221闭合卷曲   括号(})221单引号(')222双引号(")222

答案 1 :(得分:0)

如果你想匹配下划线,你需要像"[_]"这样的东西。在正则表达式中,你可以通过将它包在方括号中来匹配单个字符。