显示MessageBox消息并忽略TextBox中的无效字符

时间:2015-10-02 16:37:25

标签: vb.net

我需要用户在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

2 个答案:

答案 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