Problème de FormatNumeric d'un textbox [Résolu]

Signaler
Messages postés
37
Date d'inscription
lundi 20 novembre 2017
Statut
Membre
Dernière intervention
13 février 2020
-
Messages postés
37
Date d'inscription
lundi 20 novembre 2017
Statut
Membre
Dernière intervention
13 février 2020
-
Bonjour,
je veux rendre le contenu d'un textbox au formatNumbre en utilisant l'événement textchanged ,j'ai essayer avec ce code ,mais le problème quand je tape 4002 ça donne 2004.00 je veux que le résultat soit 4002.00
 textbox.Text = FormatNumber(textbox.Text) 


Merci d'avance

6 réponses

Messages postés
7380
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 mai 2021
122
Bonjour,

Pourquoi ne pas utiliser une masked textbox

https://www.codeproject.com/tips/666932/using-masked-textbox-in-net


Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137
bonjour
Utilise l'évènement TextBox1 KeyPress
Une fois quer ton nombre est tapé entièrement tu fais "Entrée" et cela formate le nombre complet
Le Try Catch gère l'erreur de saisie

Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress

        If e.KeyChar = Convert.ToChar(13) Then
            Try
                TextBox1.Text = FormatNumber(TextBox1.Text)
            Catch
                MessageBox.Show("Erreur saisie")
                TextBox1.Text = String.Empty
            End Try
        End If

    End Sub


Messages postés
37
Date d'inscription
lundi 20 novembre 2017
Statut
Membre
Dernière intervention
13 février 2020

Merci pour votre réponse.
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137
Bonjour
si cela te convient mets le message en Résolu avec la roue dentée
Merci
Messages postés
37
Date d'inscription
lundi 20 novembre 2017
Statut
Membre
Dernière intervention
13 février 2020

Bonjour ,

Pour le séparateur des milliers j'ai essayée avec ce code,mais quand je clique sur le point '.' rien n'est afficher .
 
Private Sub Text1_TextChanged(sender As Object, e As EventArgs) Handles Text1.TextChanged
        If Text1.Text <> "" Then
            Dim MonNombre As Decimal = Text1.Text
            Dim Resultat As String = MonNombre.ToString("### ### ###.##")
            Text1.Text = Resultat
            Text1.SelectionStart = Len(Text1.Text)
        End If
    End Sub 


Private Sub Text1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Text1.KeyPress
        If Not Char.IsControl(e.KeyChar) AndAlso Not (Char.IsNumber(e.KeyChar)) AndAlso e.KeyChar <> "."c Then
            e.Handled = True
        End If
        If e.KeyChar = Chr(13) Then SendKeys.Send("{TAB}")

    End Sub


EDIT : Correction coloration syntaxique

Merci .
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137
En France il faut utiliser la virgule dans les zones de texte pour les nombres décimaux
Messages postés
15935
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 mai 2021
545
Bonjour,
Le point ou la virgule en séparateurs décimal dépendent de la « culture »de l’application.
Par défaut cette culture est celle du PC. Si le séparateur du pc est la virgule, alors le point ne sera pas compris et inversement.
Tu peux choisir une culture spécifique pour ton application, ou même pour un thread.
Tu peux aussi gérer des cas particulier par le code.

Formatter un nombre dans le textchanged n’est pas judicieux, en effet le fait de formatter change le texte et donc redéclenche l’événement.

Il est préférable d’utiliser LostFocus ou la validation.

Enfin, il faut eviter les sendkey ça entre souvent en conflit avec ce que tape vraiment l’utilisateur.

Pour passer le focus à TextBox2, par exemple, il suffit de
TextBox2.Focus()



Un dernier point, quand tu postes un code, pense à forcer la coloration en basic, sinon ça fait un pavé gris, sans numérotation et pas scrollable.
Voir ici http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Messages postés
37
Date d'inscription
lundi 20 novembre 2017
Statut
Membre
Dernière intervention
13 février 2020

Merci .