DevGroupeMTT
Messages postés3Date d'inscriptionlundi 12 octobre 2015StatutMembreDernière intervention12 octobre 2015
-
Modifié par DevGroupeMTT le 12/10/2015 à 15:00
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 2017
-
12 oct. 2015 à 15:58
Salut,
J'ai créé un soft pour les joueurs de poker, le principe rentrée leurs données pour avoir un résultat.
Je déploie mon soft via click once sur un serveur gratuit
Le problème :
Quand les utilisateurs rentrent leurs données avec un point ou une virgule cela affiche une erreur "Ce ne sont pas des nombres"
Sauf que moi je n'ai pas cette erreur ?!
Voici le code de vérification des champs (c'est une class) :
Public Class Verif
Private _ChampAVerifier As Object Private _Validation As String Private _ColorChamp As Object Private _Comfirm As Boolean Private _Valeur As Double Sub New(ByVal ChampAVerifier As Object) _ChampAVerifier = New Object _ChampAVerifier = ChampAVerifier
_Validation = New String("")
_ColorChamp = New Object _ColorChamp = Color.White _Comfirm = New Boolean() End Sub
Public Sub Numeric() _ChampAVerifier.text = Replace(_ChampAVerifier.text, ",", ".") _ChampAVerifier.text = Replace(_ChampAVerifier.text, " ", "")
If _ChampAVerifier.text = "" Then _Validation = "Un ou plusieurs champs sont vide !" _ColorChamp = Color.FromArgb(255, 192, 192) _Comfirm = False ElseIf _ChampAVerifier.text Is Nothing Or Not IsNumeric(_ChampAVerifier.text) Then _Validation = "Ce ne sont pas des nombres" _ColorChamp = Color.FromArgb(255, 192, 192) _Comfirm = False Else _Comfirm = True _Valeur = New Double _Valeur = _ChampAVerifier.text End If
End Sub Public Property Erreur() As String Get Return _Validation End Get Set(ByVal value As String) _Validation = value End Set End Property Public Property Confirm() As Boolean Get Return _Comfirm End Get Set(ByVal value As Boolean) _Comfirm = value End Set End Property Public Property ZoneTexteColor() As Object Get Return _ColorChamp End Get Set(ByVal value As Object) _ColorChamp = value End Set End Property Public Property Valeur() As Double Get Return _Valeur End Get Set(ByVal value As Double) _Valeur = value End Set End Property
End Class
Chez l'utilisateur, les virgules sont bien remplacés comme les espaces .
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 20179 12 oct. 2015 à 15:58
il faut a mon avis tester la validité du numérique avec le methode
Double.TryParse en lui passant comme paramètre le CultureInfo.CurrentCulture
ce qui va transformer ton texte entré avec la culture du pc (pavé numérique donne le point ou la virgule) en double, si elle renvoit false, tu considères que ce n'est pas un numérique.