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

Messages postés
27
Date d'inscription
lundi 20 novembre 2017
Dernière intervention
6 décembre 2018
- - Dernière réponse : omaimainfo
Messages postés
27
Date d'inscription
lundi 20 novembre 2017
Dernière intervention
6 décembre 2018
- 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

6 réponses

Messages postés
5613
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
16 décembre 2018
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
Messages postés
1728
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
14 décembre 2018
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
Messages postés
27
Date d'inscription
lundi 20 novembre 2017
Dernière intervention
6 décembre 2018
0
Merci
Merci pour votre réponse.
vb95
Messages postés
1728
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
14 décembre 2018
-
Bonjour
si cela te convient mets le message en Résolu avec la roue dentée
Merci
Commenter la réponse de omaimainfo
Messages postés
27
Date d'inscription
lundi 20 novembre 2017
Dernière intervention
6 décembre 2018
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
Messages postés
1728
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
14 décembre 2018
-
En France il faut utiliser la virgule dans les zones de texte pour les nombres décimaux
Commenter la réponse de omaimainfo
Messages postés
12399
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 décembre 2018
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
Messages postés
27
Date d'inscription
lundi 20 novembre 2017
Dernière intervention
6 décembre 2018
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.