Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment insérer des 0 devant un chiffre dans un textebox

6 réponses
Avatar
Jo
bonsoir a tous,

comment insérer des 0 devant un chiffre dans un textebox
ex: quand je tape 11 j'aimerais une sortie 000011

en vb6 je faisait:
Private Sub OpKilomètres_LostFocus()
OpKilomètres.Text = Right("000000" + OpKilomètres.Text, 6)
End Sub

mais la étant nouveau sur vbexpress2005 et après divers essai je sèche ?
merci de votre aide

Jo

6 réponses

Avatar
Fred
Dans : news:,
Jo disait :
bonsoir a tous,



Bonjour,

comment insérer des 0 devant un chiffre dans un textebox
ex: quand je tape 11 j'aimerais une sortie 000011

en vb6 je faisait:



OpKilomètres.Text = Right("000000" + OpKilomètres.Text, 6)




OpKilomètres.Text = OpKilomètres.Text.PadLeft(6, "0")

Voir la documentation de la classe String pour les fonctionnalités de
traitement de chaînes du framework.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Jo
Bonjour, Fred et merci pour cette réponse ou je cherchais quelque chose de
bien compliquer
je vais consulter cette doc car il y a pas mal de changement...

Meilleurs voux pour cette nouvelle année
Jo

"Fred" a écrit dans le message de groupe de
discussion : #
Dans : news:,
Jo disait :
bonsoir a tous,



Bonjour,

comment insérer des 0 devant un chiffre dans un textebox
ex: quand je tape 11 j'aimerais une sortie 000011

en vb6 je faisait:



OpKilomètres.Text = Right("000000" + OpKilomètres.Text, 6)




OpKilomètres.Text = OpKilomètres.Text.PadLeft(6, "0")

Voir la documentation de la classe String pour les fonctionnalités de
traitement de chaînes du framework.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)


Avatar
PierreSlideM
TextBox1.text= String.Format("{0:00000}", 11)

"Jo" a écrit :

bonsoir a tous,

comment insrer des 0 devant un chiffre dans un textebox
ex: quand je tape 11 j'aimerais une sortie 000011

en vb6 je faisait:
Private Sub OpKilomtres_LostFocus()
OpKilomtres.Text = Right("000000" + OpKilomtres.Text, 6)
End Sub

mais la tant nouveau sur vbexpress2005 et aprs divers essai je sche ?
merci de votre aide

Jo



Avatar
Jo
Merci pout cette réponse
qui ai aussi comme celle de Fred se que je recherchais
mais la ne comprend pas trop ou placer 0 : 0 et 11
faut que je consulte la doc sur string ?

Jo


"PierreSlideM" a écrit dans le
message de groupe de discussion :

TextBox1.text= String.Format("{0:00000}", 11)

"Jo" a écrit :

bonsoir a tous,

comment insrer des 0 devant un chiffre dans un textebox
ex: quand je tape 11 j'aimerais une sortie 000011

en vb6 je faisait:
Private Sub OpKilomtres_LostFocus()
OpKilomtres.Text = Right("000000" + OpKilomtres.Text, 6)
End Sub

mais la tant nouveau sur vbexpress2005 et aprs divers essai je sche ?
merci de votre aide

Jo





Avatar
Fred
Dans : news:,
Jo disait :
Merci pout cette réponse
qui ai aussi comme celle de Fred se que je recherchais
mais la ne comprend pas trop ou placer 0 : 0 et 11
faut que je consulte la doc sur string ?



Bonjour Jo,

La méthode String.Format permet de mettre en forme une chaîne de
caractères dans laquelle figurent des balises ({0}, {1} etc ...) qui
seront remplacées par des valeurs (non nécessairement des chaînes). Dans
ces balises peuvent figurer des informations de formatage (ex de Pierre
: {0:000000})

Autre exemple :
Dim a As Integer = 2
Dim b As Single = 3.5!
Dim d as DateTime = Now
MsgBox(String.Format("Aujourd'hui {0:D}, {1:00} est plus petit que
{2:00.000}", d, a, b))

Affichage : Aujourd'hui samedi 5 janvier 2008, 02 est plus petit que
03,500

Dans ma première réponse, je me suis contenté de traduire ton code vb6
(manipulation de chaîne uniquement).
La méthode proposée par Pierre permet de mettre en forme une valeur
numérique.
Reste à savoir ce que tu veux faire exactement.
Je suppose que tu souhaites valider la valeur saisie avant de la mettre
en forme ?
Essaie ce bout de code :

Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
Dim value As Integer
If Integer.TryParse(Me.TextBox1.Text, value) Then
Me.TextBox1.Text = value.ToString("000000")
Else
Me.ErrorProvider1.SetError(Me.TextBox1, "Format incorrect")
Me.TextBox1.SelectAll()
e.Cancel = True
End If
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles TextBox1.TextChanged
Me.ErrorProvider1.SetError(Me.TextBox1, String.Empty)
End Sub

Ce code fonctionne avec une form sur laquelle ont été déposés un TextBox
et un composant ErrorProvider.
On fait appel à l'évènement Validating plutôt que LostFocus.
Au passage, il illustre une troisième méthode de mise en forme d'une
variable avec la méthode ToString (existant pour tout objet, mais avec
des paramètres différents suivant les types de donnée)

PS : dans mon exemple, on ne peut quitter le TextBox tant qu'il ne
contient pas un entier.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Jo
merci Fred pour le code je viens de l' essayer et pas mal de possibilité
donc.
la pour le moment nouveau dans vb2005 express (15 jours et 1 essai)
je suis un peu perdu et découvre ses possibilité...
dans ton code je viens de découvrir le composant ErrorProvider pas mal.
pour me faire un peu la main j'ai repris un de mes codes vb6 pour me
concentre sur les différences de code
et essaye de le réécrire maintenant en vb2005 et la je me suis aperçu
qu'il fallait tout revoir, index listview, ecriture fichier etc.
et surtout donc le traitement des strings
la pour le moment se que je recherchai était de formater
mon texte de 11 vers 000011 kilométrage pour un carnet d'entretien auto)
donc c vrai la première réponse
dans un premier temps correspondais a mon attente
et vais donc tester les différente possibilité de sring.format entre autres

encore merci a vous deux
Jo

"Fred" a écrit dans le message de groupe de
discussion : uO#
Dans : news:,
Jo disait :
Merci pout cette réponse
qui ai aussi comme celle de Fred se que je recherchais
mais la ne comprend pas trop ou placer 0 : 0 et 11
faut que je consulte la doc sur string ?



Bonjour Jo,

La méthode String.Format permet de mettre en forme une chaîne de
caractères dans laquelle figurent des balises ({0}, {1} etc ...) qui
seront remplacées par des valeurs (non nécessairement des chaînes). Dans
ces balises peuvent figurer des informations de formatage (ex de Pierre :
{0:000000})

Autre exemple :
Dim a As Integer = 2
Dim b As Single = 3.5!
Dim d as DateTime = Now
MsgBox(String.Format("Aujourd'hui {0:D}, {1:00} est plus petit que
{2:00.000}", d, a, b))

Affichage : Aujourd'hui samedi 5 janvier 2008, 02 est plus petit que
03,500

Dans ma première réponse, je me suis contenté de traduire ton code vb6
(manipulation de chaîne uniquement).
La méthode proposée par Pierre permet de mettre en forme une valeur
numérique.
Reste à savoir ce que tu veux faire exactement.
Je suppose que tu souhaites valider la valeur saisie avant de la mettre en
forme ?
Essaie ce bout de code :

Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
Dim value As Integer
If Integer.TryParse(Me.TextBox1.Text, value) Then
Me.TextBox1.Text = value.ToString("000000")
Else
Me.ErrorProvider1.SetError(Me.TextBox1, "Format incorrect")
Me.TextBox1.SelectAll()
e.Cancel = True
End If
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Me.ErrorProvider1.SetError(Me.TextBox1, String.Empty)
End Sub

Ce code fonctionne avec une form sur laquelle ont été déposés un TextBox
et un composant ErrorProvider.
On fait appel à l'évènement Validating plutôt que LostFocus.
Au passage, il illustre une troisième méthode de mise en forme d'une
variable avec la méthode ToString (existant pour tout objet, mais avec des
paramètres différents suivant les types de donnée)

PS : dans mon exemple, on ne peut quitter le TextBox tant qu'il ne
contient pas un entier.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)