J'ai le code suivant pour formater la saisie décimale dans un TextBox
.Valider l'entrée TextBox à l'emplacement du curseur
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
Tout cela fonctionne très bien, mais si j'entre une valeur dans la TextBox
, par exemple 10.50, quand j'essaie alors de supprimer le premier 0 et de changer la valeur à 11.50, il ne me le permettra pas, car il y a 2 chiffres après le point décimal qui annule toute autre entrée de l'utilisateur, pour s'assurer que seulement 2 décimales peut être entré.
Y at-il un moyen de valider cela pour vérifier si le chiffre est ajouté avant ou après la virgule? Ou s'il peut le vérifier en fonction de l'emplacement du curseur?
Il existe probablement un moyen plus simple de valider la décimale dans un TestBox
, mais ce code est également utilisé pour la validation de grilles et d'autres contrôles, donc quelque chose dans ce format est nécessaire.