我需要用户在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 :(得分: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
希望这可以帮到你!再见。
答案 1 :(得分: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