Contenu d'un texbox

Résolu
cs_colby Messages postés 126 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 14 novembre 2022 - 24 sept. 2009 à 13:59
cs_colby Messages postés 126 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 14 novembre 2022 - 26 sept. 2009 à 21:13
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

Profil bloqué
25 sept. 2009 à 18:33
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
3
hellangel777 Messages postés 267 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 novembre 2013 1
24 sept. 2009 à 14:16
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
0
Profil bloqué
24 sept. 2009 à 22:32
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
0
cs_colby Messages postés 126 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 14 novembre 2022
25 sept. 2009 à 07:49
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Profil bloqué
25 sept. 2009 à 18:32
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
0
cs_colby Messages postés 126 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 14 novembre 2022
26 sept. 2009 à 21:13
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
0
Rejoignez-nous