0
小数の入力をTextBox
にフォーマットする次のコードがあります。キャレット位置の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に値を変更しようとすると、他のすべてのユーザー入力をキャンセルする小数点の後に2桁があるので、小数点以下2桁しか保証しません入力することができます。
小数点の前後に数字が追加されているかどうかを確認する方法がありますか?それとも、キャレットの位置に基づいてチェックできますか?
おそらくTestBox
で小数を検証する簡単な方法がありますが、このコードはグリッドやその他のコントロールの検証にも使用されるため、この形式のものが必要です。