对不起这个可能很简单的问题,但我发现我什么都不懂。 我只需要在文本框中阻止一个键...让我们说" _" ......所以我想允许除下划线之外的所有标志
这就是我所拥有的......
private void inputName_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (!Regex.IsMatch(inputName.Text, @"_"))
{
e.Handled = true;
}
}
...但实际上我不明白正则表达式如何运作以及我如何能够满足我的需要。 感谢您的帮助。
我已经解决了这个问题...
inputName.Text = inputName.Text.Replace("_", "");
关于LostFocus这个文本框的事件......但当然这不是很好
答案 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)
如果你想匹配下划线,你需要像"[_]"
这样的东西。在正则表达式中,你可以通过将它包在方括号中来匹配单个字符。