2015-10-14 107 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