2015-10-02 59 views
0

我需要用戶在TextBox中只鍵入整數。我已經有了驗證工作,問題是如果他/她輸入一個點,一個字母或符號!@#,我想向用戶顯示一個MessageBox。如果輸入了無效字符,但是該字母仍然出現在TextBox中,我不希望MessageBox顯示給用戶。顯示MessageBox消息並忽略TextBox中的無效字符

能否請你幫我,告訴我有什麼錯我的代碼,請

Private Sub txtCMS_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCMS.KeyPress 
    If (e.Handled = Not IsNumeric(e.KeyChar) And Not Char.IsControl(e.KeyChar)) = False Then 
     MessageBox.Show("Favor ingrese solo numeros", "Pablo Tobar says...", MessageBoxButtons.OK, MessageBoxIcon.Information) 
    End If  
End Sub 

回答

0

我用這個代碼:

Private Sub txtCMS_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCMS.KeyPress 
    If Not (IsNumeric(e.KeyChar) OrElse Char.IsControl(e.KeyChar)) Then 
     e.Handled = True 
     MessageBox.Show("Por favor, ingrese sólo números", "Pablo Tobar says...", MessageBoxButtons.OK, MessageBoxIcon.Information) 
    End If 
End Sub 

希望這能幫助你!再見。

0

您對數字輸入的測試似乎已與代碼混淆在一起,忽略無效字符。您可以使用Char.IsDigit檢查字符是十進制數字,並且您需要設置e.Handled = True忽略輸入。

Private Sub txtCMS_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCMS.KeyPress 
    If Not Char.IsDigit(e.KeyChar) Then 
     MessageBox.Show("Invalid number") 
     e.Handled = True 
    End If 
End Sub