Contenu d'un texbox [Résolu]

Signaler
Messages postés
111
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
23 mars 2018
-
Messages postés
111
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
23 mars 2018
-
bonjour a tous
j'ai un textbox dans lequel sera insérer un nombre 1500000.
Comment formater celui-ci pour que lorsque l'utilisateur écrit cet nombre qu'il prenne la forme 1 500 000 directement ?
Merci d'avance. Je ne suis qu'un débutant

6 réponses

Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Une faute de frappe dans la ligne précédant le End Sub

Clustext.text = Cdbl(Clustext.Text).ToString("0,0")

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Messages postés
267
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 novembre 2013
1
Bonjour,

Je suis pas spécialiste de vb.net mais en fouillant dans msdn j'ai trouvé ceci :

format-number(5351,"#,###")
dim ValeurTextBox as double

ValeurTextBox = Cdbl(Textbox1.text)
Textbox1.text = format-number(ValeurTextBox,"# ### ###")


voilà si c'est faux j'espere que cela te donnera des pistes

Bon courage

HellAngel777
Les machines ne font pas d'erreurs
Heureusement nous sommes humains
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Salut Colby

dim ValeurTextBox as double = 1500000
Textbox1.text = ValeurTextBox.ToString("0,0")

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Messages postés
111
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
23 mars 2018

Merci. Mais pour que cela marche la valeur du textbox est connu d'avance dans mon cas non. le format s"appliquera au moment de l'insertion.
Tester ceci, je l'ai vu en cherchant sur codes sources. En l'adaptant pour mon cas un probleme : quant j'ecris 1 000 il affiche 100 0. Comment corriger cela.
Dim tmp As String
If Len(Textbox1.Text) = 3 Then
tmp = Textbox1.Text & " "
Textbox1.Text = tmp
Textbox1.SelectionStart = 5
End If
If Len(Textbox1.Text) = 7 Then
tmp = Textbox1.Text & " "
Textbox1.Text = tmp
Textbox1.SelectionStart = 9
End If
If Len(Textbox1.Text) = 11 Then
tmp = Textbox1.Text & " "
Textbox1.Text = tmp
Textbox1.SelectionStart = 13
End If

2) En le combinant avec ceci :

Const Sauteligne As Integer = 14
If Len(Textbox1.Text) = Sauteligne Then
Textbox1.SelectedText = vbCrLf
End If
If Len(Textbox1.Text) > Sauteligne + 2 And (Len(Textbox1.Text) - Sauteligne) Mod (Sauteligne + 2) = 0 Then
Textbox1.SelectedText = vbCrLf
End If

Comment l'utiliser en boucle de sorte que a chaque fois que je passe a la ligne le format s'applique. ie si je voudrais écrire 100000000 sur deux lignes et et 50000000 sur une 3è j'aurais :
ligne 1 = 100 000 000
ligne 2 = 100 000 000
ligne 3 = 50 000 000
Merci d'avance
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Salut Colby

Lorsque l'utilisateur tape les nombres dans la dite TextBox il faut bien qu'à un moment il tape une touche spéciale indiquant que c'est la fin du nombre ( exemple la touche Enter ou Entrée chez nous)
Dans la procédure qui gère la Textbox il faut tester si l'utilisateur a tapé cette touche avec l'événement Keypress de la Textbox et si oui faire

Textbox1.text = Cdbl(Textbox1.Text).ToString("0,0")
Le Cdbl convertit la TextBox d'origine en une valeur double et le Tostring(0,0) réécrit cette valeur en séparant les blocs de chiffres par 3 en partant de la droite

Un exemple avec une TextBox nommée Clustext

Private Sub Clustext_KeyPress(ByVal sender As Object, ByVal e As_ System.Windows.Forms.KeyPressEventArgs) Handles Clustext.KeyPress

dim errchar as Boolean
dim caractere as String

If e.KeyChar <> Convert.ToChar(13) Then Exit Sub
errchar = False
For i = 0 To Clustext.Text.Length - 1
caractere = Clustext.Text.Substring(i, 1)
If caractere < "0" Or caractere > "9" Then
MessageBox.Show("Vous ne devez tapez que des chiffres")
Clustext.Text = ""
errchar = True
Exit For
End If
Next i
If errchar = True Then Exit Sub
Clustect.text = Cdbl(Clustext.Text).ToString("0,0")

End Sub

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Messages postés
111
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
23 mars 2018

Merci Galain.
Aussi simple et efficace. Reste le formatage du textbox multiligne que me conseillez vous?
Si j'écris par ex AAAA 000000-0 sur la ligne 1, en passant a la ligne 2 je voudrais qu'il applique le même format au lieu de continuer. ie que j'aurais :
ligne 1 : AAAA 000000-0
ligne 2 : AAAA 000000-0
ainsi de suite
au lieu de
ligne 1 : AAAA 000000-0
ligne 2 : AAAA000000-0
merci d'avance