Problème de FormatNumeric d'un textbox

Résolu
omaimainfo Messages postés 32 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 1 septembre 2022 - 12 juil. 2018 à 11:34
omaimainfo Messages postés 32 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 1 septembre 2022 - 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

6 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
Modifié le 12 juil. 2018 à 12:04
Bonjour,

Pourquoi ne pas utiliser une masked textbox

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


0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié le 12 juil. 2018 à 12:22
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


0
omaimainfo Messages postés 32 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 1 septembre 2022
12 juil. 2018 à 18:03
Merci pour votre réponse.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
12 juil. 2018 à 18:05
Bonjour
si cela te convient mets le message en Résolu avec la roue dentée
Merci
0
omaimainfo Messages postés 32 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 1 septembre 2022
Modifié le 13 juil. 2018 à 15:54
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 .
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
13 juil. 2018 à 14:24
En France il faut utiliser la virgule dans les zones de texte pour les nombres décimaux
0

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

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
13 juil. 2018 à 14:51
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
0
omaimainfo Messages postés 32 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 1 septembre 2022
13 juil. 2018 à 15:59
Merci .
0
Rejoignez-nous