VB 2005
Dans les options régionales (panneau de configuration - Options régionales, date, heure et langue ? Options régionales et linguistique), si la culture est française avec les paramètres par défaut, entre autres, la virgule comme séparateur décimal des nombres, l?emploi du «.» du pavé numérique comme séparateur, pose problème avec les fonctions de conversion (CType, CDec, ?) la fonction Parse, les mise en forme ToString.
Le plus simple, pour régler ces problèmes, est de personnaliser les options régionales et d?imposer le point.
Mais si on ne veut ou ne peut pas.
Une autre solution consiste à passer avant chaque conversion, en « en-Us » et revenir en « fr-FR » après, avec « My.Application.ChangeCulture ».
D?autres solutions existent dont celle ci.
C?est un code qui permet de définir le format d'affichage des nombres, issu de :
http://msdn2.microsoft.com/fr-fr/library/system.globalization.cultureinfo.numberformat(VS.80).aspx
et mis en pratique dans un exemple.
Là, on ne modifie pas les options du panneau de configuration, on en fait un clone avec les modifications que l?on désire et qui s?applique uniquement à la routine en cours d?exécution de l?application.
J'ai appliqué ton code, sur un TextBox nommé « tbPrixU » comme suit :
Private Sub tbPrixU_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles tbPrixU.KeyPress
If e.KeyChar = ChrW(46) Then
e.KeyChar = ChrW(44)
End If
End Sub
Private Sub tbPrixU_Validated(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles tbPrixU.Validated
tbPrixU.Text = Format(CDbl(tbPrixU.Text), "#0.00")
End Sub
Ca fonctionne bien, mais je n'ai pas trouvé de solution pour une mise en forme, autre que celle proposée par la culture anglaise.
Je sais, je chipote, mais j'aimerais la virgule.
Je modifie ma source avec 2 exemples.
If KeyAscii 46 Then KeyAscii 44
(ou l'inverse pour passer de virgule à point)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.