fadan
Messages postés14Date d'inscriptionjeudi 30 octobre 2008StatutMembreDernière intervention22 janvier 2009
-
11 nov. 2008 à 12:07
NOURIILHAM
Messages postés3Date d'inscriptionjeudi 8 avril 2010StatutMembreDernière intervention 8 avril 2010
-
8 avril 2010 à 02:15
Bonjour le forum.
Je viens de découvrir, VB 2008 express.
Et étant débutant en programation, je cale sur le contrôle de saisies dans un textBox.
En effet, j'aimerai limiter la saisie à 1 chiffre après la virgule dans un textBox . (c'est un calcul de kilomètrage)
exemple: la saisie doit etre 1000,1 et non 1000,11.
De plus cela serait magique si la saisie se met automatiquement au format "##,###,###.#" (99.999.999,9) dans le textBox.
Un grand merci d'avance, d'un nouveau passionné.
Fadan.
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 17 nov. 2008 à 20:16
Salut,
Voici un autre moyen de procéder :
(Note : Le code ci-dessous doit être mis dans l'évènement KeyPress de la TextBox)
If IsNumeric(TextBox1.Text) = True Then
' On teste si la valeur dans la TextBox1 est un nombre
If CStr(CDbl(TextBox1.Text) - CInt(TextBox1.Text)).Length = 3 Then
' La valeur '3' a été choisi car elle obéit à la règle suivante : nombre de décimal max + 2
' On soustrait le nombre contenu dans TextBox1 par son entier
' On convertit le résultat en String
' Et on vérifie la longueur
' Voir exemple ci-dessous pour plus de détail
If e.KeyChar <> "8;" Then
' On autorise le retour en arrière pour modifier la valeur
e.KeyChar = ""
' Si on ne fait pas de retour en arrière
' on change le dernier caractère rentré par rien du tout
End If
Exit Sub
End If
End If
' Exemple :
' Nombre contenu dans TextBox1 : 10,5
' 10,5 - 10 = 0,5
' Conversion de 0,5 en string
' On vérifie la longueur (0,5 comporte 3 caractères)
' La condition " If CStr(CDbl(TextBox1.Text) - CInt(TextBox1.Text)).Length = 3 " est vraie
' Si on a pas appuyer sur la touche Retour en arrière pour effacer (verifié par la condition " If e.KeyChar <> "8;" ")
' On remplace le caractère tapé par ""car on a 1 chiffre après la virgule
fadan
Messages postés14Date d'inscriptionjeudi 30 octobre 2008StatutMembreDernière intervention22 janvier 2009 11 nov. 2008 à 17:04
Merci pour la réponse, mais... il y a toujour un mais.....
Car avec le contrôle MaskedTextBox, même s'il est magique on est obligé de rentrer la totalité par exemple pour 1.234,5 on doit entrer 00.001.234,5
Encore un mais... Mais je pense que je vais suivre ton conseil car pour l'instant je fais juste un petit programme de 2 entrées et 1 affichage qui irons dans une basse pour ensuite récuperer. Pour apprendre comment cela se passe avant d'aller plus loin. Donc je reviendrai souvent sur se forum qui est génial.
Mais encore mille merci.
fadan.