IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Format d'un TEXTBOX


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Points : 146
    Points
    146
    Par défaut Format d'un TEXTBOX
    Bonjour,
    Je cherche à formater un textbox ("nourrit" par un Dataset) au format : 1 2345,67
    C'est à dire : séparateur de millier, 2 décimals.
    A cette heure, mon Textbox a cette tête : 123456,78912345 !! pas cool à lire dans un TextBox..!
    Merci bcp !

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Points : 616
    Points
    616
    Par défaut
    bonjour,
    Une des réponse est : {0:N}
    Tu trouveras de plus amples info sur :http://msdn2.microsoft.com/fr-fr/lib...cc(VS.80).aspx
    bonne journée

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Points : 146
    Points
    146
    Par défaut
    En fait, voici ma ligne de code :

    TextBox1.Text = (String.Format("{0:N}", DataBindings.Add("text", MonDataSet, "MaTable.MonChamp")))

    Mais la valeur obtenue dans mon TextBox est : System.Windows.Forms.Binding

    Je bug un peu.. je séche.., je trouve pas ! A l'aiideeee !!!

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Il ne faut pas alimenter la propriété text, mais juste ajouter une liaison de données (databinding) qui elle se chargera de ton texte.

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Il ne faut pas alimenter la propriété text, mais juste ajouter une liaison de données (databinding) qui elle se chargera de ton texte.

    --- edit ---

    Eventuellement, pour formatter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    textbox.text = (String.Format("{0:N}", textbox.text)
    C'est juste une idée non testée, so beware...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Points : 321
    Points
    321
    Par défaut maskedtextbox?
    j'ai peut être pas bien compris ce que tu veux faire, mais apparemment c'est un masque de saisie en gros. A ce moment là, au lieu d'une textbox, utilise le controle MaskedTextBox dans la boite à outil de Visual Studio (si tu utilises VS bien sur). Tu peux configurer tes propres masques.

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Points : 146
    Points
    146
    Par défaut
    Ben non.. ca marche pas.
    L'idée est que je cherche à donner un "format" à mon Textbox quand le résultat de mon Binding arrivera..

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Points : 321
    Points
    321
    Par défaut
    eh bien tu peux donner un format un MaskedTextBox

    Tu tiens vraiment à avoir la virgule?
    car sinon tu peux arrondir ton nombre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim un As Integer = 1.2
    Decimal.Round(un)
    MsgBox(un.ToString())
    et si tu veux garder la virgule tu peux truander en faisant comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim nombre As Decimal = 5.256987
    Dim chaineNombre As String = nombre.ToString()
    chaineNombre = chaineNombre.Split(",").GetValue(0) + "," + _ 
            chaineNombre.Split(",").GetValue(1).ToString().Substring(0, 2)
    et on obtient alors 5.25 pour celui ci. Après tu peux reconvertir en Decimal.
    A ce moment là, tu devras peut-etre remplacer la virgule par un point je sais pas

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    Regarde dans l'aide l'événement binding.format.
    Peut-être que cela peut t'aider.
    Bon boulot
    Jean

  10. #10
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Citation Envoyé par marcusien
    et si tu veux garder la virgule tu peux truander en faisant comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim nombre As Decimal = 5.256987
    Dim chaineNombre As String = nombre.ToString()
    chaineNombre = chaineNombre.Split(",").GetValue(0) + "," + _ 
            chaineNombre.Split(",").GetValue(1).ToString().Substring(0, 2)
    euh !! et ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim nombre As Decimal = 5.256987
    TextBox.Text = nombre.toString("0.00")
    ... tout simplement

  11. #11
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Points : 146
    Points
    146
    Par défaut
    Bon et bien je vais devoir capituter ! Si quelqu'un à une lumière.. Qu'il n'hésite pas
    A bientôt.

  12. #12
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    il faut travailler sur l'évènement format de la liaison. Dans mon exemple, la liaison du textbox à la source existe déjà dans le concepteur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO : cette ligne de code charge les données dans la table 'Bd3DataSet.Table1'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.Table1TableAdapter.Fill(Me.Bd3DataSet.Table1)
            AddHandler ValeurTextBox.DataBindings(0).Format, AddressOf FormatNum
        End Sub
     
        Private Sub FormatNum(ByVal sender As Object, ByVal cevent As ConvertEventArgs)
     
            cevent.Value = Format(cevent.Value, "Standard")
     
        End Sub

Discussions similaires

  1. format datetime dans textbox
    Par alexlevenere dans le forum C#
    Réponses: 7
    Dernier message: 19/03/2008, 13h31
  2. controle du format d un textbox
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 30/11/2007, 15h14
  3. affichge format heure dans textbox
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 12h53
  4. [C#] Obtenir un format dans un textbox
    Par kenzo080 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 16/04/2007, 16h04
  5. [C#] Je veux formater un control textBox
    Par justice007 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/05/2004, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo