0
我有以下代码将十进制输入格式化为TextBox
。在插入位置验证文本框输入
If Char.IsDigit(e.KeyChar) OrElse e.KeyChar = "."c Then
If e.KeyChar = "."c Then
If txtPrice.Text.Contains("."c) Then
e.Handled = True
End If
ElseIf Char.IsDigit(e.KeyChar) Then
If txtPrice.Text.Contains("."c) Then
Dim value As String = txtPrice.Text
Dim units As String = value.Substring(value.IndexOf("."c) + 1)
If units.Length >= 2 Then
e.Handled = True
End If
End If
End If
ElseIf e.KeyChar <> Chr(8) Then
e.Handled = True
End If
这一切工作正常,但是,如果我输入一个值到TextBox
,例如10.50,当我试着删除第一个0并将其值改为11.50时,它不允许我这样做,因为在取消所有其他用户输入的小数点后面有两位数,以确保只有两位小数可以输入。
有没有一种方法可以验证此检查数字是否在小数点前后添加?或者如果它可以根据插入位置检查它?
在TestBox
中可能有一种更简单的方法来验证小数,但是此代码也用于验证网格和其他控件,因此需要使用此格式的某些内容。