TextBox.Text仅接受十进制输入

时间:2015-12-22 07:33:44

标签: vb.net

如何使txtamount.text仅接受小数值,它只能接受一个.不超过一个。

以下是我的尝试,但接受更多.

Private Sub txtamount_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtamount.KeyPress
        If Asc(e.KeyChar) <> 8 Then
            If (Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57) And Asc(e.KeyChar) <> 46 Then
                e.Handled = True
            End If
        End If
    End Sub

2 个答案:

答案 0 :(得分:0)

您可以使用

        Dim asccode As Integer = Asc(e.KeyChar)
        If asccode <> 8 Then
            If asccode = 46 And txtPackageAmount.Text.Contains(".") Then
                e.Handled = True
            End If
            If (asccode < 48 Or asccode > 57) And asccode <> 46 Then
                e.Handled = True
            End If
        End If

答案 1 :(得分:0)

我建议改用NumericUpDown。它有一个名为DecimalPlaces的属性,您可以在其中设置用户可以输入的小数位数的限制。那么你不需要任何代码只是为了验证1“。”进入了。