2013-02-15 54 views
1
private void txtLastName_PreviewKeyDown(object sender, KeyEventArgs e) 
    { 
     if (!char.IsDigit((char)e.Key)) e.Handled = true; 
    } 

但它不支持键盘上的所有键。创建仅接受文本的WPF文本框

+0

你不想哪些字符接受?例如。 @:; _--#()/ \。,?!''“或数字? – PGallagher 2013-02-15 05:40:47

+0

我只想输入文本 – 2013-02-15 06:06:17

回答

2

您必须使用IsLetter

private void txtLastName_PreviewKeyDown(object sender, KeyEventArgs e) 
    { 
     if (Char.IsLetter((char)e.Key)) e.Handled = true; 
    } 
2
private void txtLastName_PreviewTextInput(object sender, TextCompositionEventArgs e) 
    { 
     if (!System.Text.RegularExpressions.Regex.IsMatch(e.Text, "^[a-zA-Z]")) 
     { 
      e.Handled = true; 
     } 
    } 
+2

请尽量避免将代码转储为答案,并尝试解释它的作用和原因对于那些没有相关编码经验的人来说,你的代码可能并不明显,请编辑你的答案,包括[澄清,上下文,并尝试提及你的答案中的任何限制,假设或简化。](https:// stackoverflow。 COM /帮助/如何到结果) – 2017-06-19 21:03:51