0
我使用這個代碼只是被輸入
Private Sub MyTextBox_KeyPress(sender As Object, e As KeyPressEventArgs) Handles MyTextBox.KeyPress
If Not Regex.Match(MyTextBox.Text, "^[a-z /s ']*$", RegexOptions.IgnoreCase).Success Then
MyTextBox.Text = MyTextBox.Text.Remove(MyTextBox.SelectionStart - 1, 1)
MyTextBox.Select(MyTextBox.Text.Count, 0)
End If
End Sub
,因此用戶只能加字母,空格和撇號
代碼工作,如果用戶數字後自動刪除關於正則表達式未被授權的字符
somethin8g
數字8爲r emoved
但是,如果用戶只是數字
somethin8
8號是可見的,直到用戶按其它鍵,即使最壞的情況,如果用戶按下「保存」按鈕信息甚至與8號
有沒有更好的辦法只有在鍵入後自動取消對正則表達式無權字符接受?
集'e.Handled'爲true以防止當前按鍵被處理。不*操作當前文本框中的文本! –
它不工作或我不明白的方式。在if中使用e.Handled = True,而不是文本操作,我仍然可以將一個數字和數字保留在文本框中。此外,我添加的代碼就像如果e.KeyChar = Microsoft.VisualBasic.Strings.ChrW(Keys.Back)然後這樣我就可以按空格鍵來刪除 – fedeteka
的'if'聲明應檢查是否用戶輸入一個數字。如果他們確實如此,則將'e.Handled'設置爲true以忽略按鍵。喜歡的東西:'如果(Char.IsDigit(e.KeyChar))然後e.Handled = TRUE;。您不應該操縱控件中的文本,並且正則表達式對於一個簡單的問題來說太難了。 –