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

omaimainfo 21 Messages postés lundi 20 novembre 2017Date d'inscription 1 août 2018 Dernière intervention - 12 juil. 2018 à 11:34 - Dernière réponse : omaimainfo 21 Messages postés lundi 20 novembre 2017Date d'inscription 1 août 2018 Dernière intervention
- 13 juil. 2018 à 15:59
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
Afficher la suite 

Votre réponse

8 réponses

cs_Le Pivert 5366 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - Modifié par cs_Le Pivert le 12/07/2018 à 12:04
0
Merci
Bonjour,

Pourquoi ne pas utiliser une masked textbox

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


Commenter la réponse de cs_Le Pivert
vb95 1669 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 24 septembre 2018 Dernière intervention - Modifié par vb95 le 12/07/2018 à 12:22
0
Merci
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


Commenter la réponse de vb95
omaimainfo 21 Messages postés lundi 20 novembre 2017Date d'inscription 1 août 2018 Dernière intervention - 12 juil. 2018 à 18:03
0
Merci
Merci pour votre réponse.
vb95 1669 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 24 septembre 2018 Dernière intervention - 12 juil. 2018 à 18:05
Bonjour
si cela te convient mets le message en Résolu avec la roue dentée
Merci
Commenter la réponse de omaimainfo
omaimainfo 21 Messages postés lundi 20 novembre 2017Date d'inscription 1 août 2018 Dernière intervention - Modifié par jordane45 le 13/07/2018 à 15:54
0
Merci
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 .
vb95 1669 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 24 septembre 2018 Dernière intervention - 13 juil. 2018 à 14:24
En France il faut utiliser la virgule dans les zones de texte pour les nombres décimaux
Commenter la réponse de omaimainfo
Whismeril 12032 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 septembre 2018 Dernière intervention - 13 juil. 2018 à 14:51
0
Merci
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
Commenter la réponse de Whismeril
omaimainfo 21 Messages postés lundi 20 novembre 2017Date d'inscription 1 août 2018 Dernière intervention - 13 juil. 2018 à 15:59
0
Merci
Merci .
Commenter la réponse de omaimainfo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.