2010-04-10 36 views
2

一個文本框,我怎麼能驗證一個文本框在vb.net,所以它給錯誤消息,如果我除了字母用正則表達式輸入任何驗證在vb.net

+2

這是一個html文本框,winforms嗎? – 2010-04-10 16:44:16

+0

確實「字母」的意思是「只有字母字符」?例如A-Z,A-Z? - 怎麼樣àcçêntëd字符和標點符號? (/ [@] @#%^&*!) – scunliffe 2010-04-10 16:51:26

+0

我只需要接受字母即a-z到A-Z – user161004 2010-04-10 16:53:30

回答

3

您可以檢查文本字符串,即textbox1.text,以確保它在.Leave事件中除字母字符外沒有任何內容。例如,當用戶標籤到下一個控件時,這會發生錯誤。您可以使用正則表達式(在此示例中導入System.Text.RegularExpressions)來完成此操作,也可以使用「手動」來檢查文本。

Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave 
    If Not Regex.Match(TextBox1.Text, "^[a-z]*$", RegexOptions.IgnoreCase).Success Then 
    MsgBox("Please enter alpha text only.") 
    TextBox1.Focus() 
    End If 
End Sub 

如果你想盡快的非字母鍵被按下停止用戶,可以使用TextChanged事件,而不是.Leave事件。

1

CustomFieldValidator。

+0

我們如何使用CustomeFieldValidator – user161004 2010-04-10 16:48:58

1

如果它在一個WinForms標準的文本框應用程式,您可以通過處理KeyPressed事件驗證每個輸入的字符,並在事件處理程序下面的代碼:

e.Handled = Not Char.IsLetter(e.KeyChar) 

用戶仍可以使用鼠標貼儘管如此,你也可能需要處理這個問題。

另一種選擇是處理Validating事件,如果文本框包含任何非字母字符,則將e.Cancel設置爲true。