2015-10-14 94 views
2

我想我的文本框永远不会接受特殊字符。 只接受空格,数字和字母。 我发现Presskey事件验证码:没有特殊字符的文本框

private void rsNameTextBox_KeyPress(object sender, KeyPressEventArgs e) 
     { 
      e.Handled = e.KeyChar != (char)Keys.Back && !char.IsSeparator(e.KeyChar) && !char.IsLetter(e.KeyChar) && !char.IsDigit(e.KeyChar); 
     } 

但当有人粘贴在文本框中的东西它不工作。我如何使一个textChanged事件等效?

我试图“使用此功能,但它不是working.Its显示任何字符,当我粘贴,由于某种原因其删除默认的初始文本”更换不接受字符为“text1”中:

private void rsNameTextBox_TextChanged(object sender, EventArgs e) 
     { 
      Regex reg = new Regex(@"^[\s\dA-Za-z]+$"); 
      rsNameTextBox.Text = reg.Replace(rsNameTextBox.Text,""); 
     } 
+0

看到这个答案:http://stackoverflow.com/questions/3061475/paste-event-in-a-wpf-textbox。请注意,如果您尝试使用PreviewTextInput命令检查数据,您会发现空格,退格和删除不会导致事件 - 您需要使用PreviewKeyDown事件来检查该数据。 – PaulF

+0

注 - 要忽略粘贴的输入,您需要调用_e.CancelCommand(); _ – PaulF

回答

0

为什么你不使用你 想要防止剪切,复制和粘贴功能。

,然后你可以使用你的代码rsNameTextBox_KeyPress

Here是链接,如何防止窗口窗体应用程序粘贴功能。

+0

解决,谢谢。 – kadzu