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 :

[C#]masked textbox : prix


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de chasse
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 78
    Par défaut [C#]masked textbox : prix
    Bonjour,


    j'ai un masked text box, dans lequel je voudrais que la saisie soit un prix.
    mais je ne sais pas quel masque appliqué.

    si je met un masque du genre 00000

    l'utilisateur peut faire un prix du genre 55_5_5

    merci

  2. #2
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Tu as la possibilité de mettre un point (ou virgule) dans ton amsk ça permettra d'avoir le séparateur décimal
    Il y a aussi le signe ¤ pour le mask, qui permet d'avoir le symbol de monnaie.

  3. #3
    Membre confirmé Avatar de chasse
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 78
    Par défaut
    ouai j ai vu tout ca mais l utilisateur peut qd meme faire des saisies bizzarres du genre : 55 5 99

    j aimerai eviter les espaces.

  4. #4
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    mets des 9 à la place de tes 0

  5. #5
    Membre confirmé Avatar de chasse
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 78
    Par défaut
    avec des 9 et des zeros le resultat est le meme, faut il faire quelque chose pour appliquer le masque?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut
    Pour faire ça j'ai créé un composant dérivé du TextBox avec lequel l'utilisateur ne peut saisir que des données numériques avec ou sans décimal et pouvant préciser le nombre de chiffre avant et après la virgule. Il y a aussi possibilité de mettre en suffixe l'unité monétaire.
    Il y a des composants de ce type sur code project.

  7. #7
    Membre très actif
    Inscrit en
    Janvier 2004
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 208
    Par défaut
    et sans ton mask ca pourrais donner ceci.

    c'est un test que j'ai fait pour des saisies de tarifs, c'est brut en code mais ca tourne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
        public partial class maForm : Form
        {
            private double licence = 0.0;
     
            public maForm()
            {
                InitializeComponent();
                TextBox.Text = 0.ToString("C");
            }
     
            private void TextBox_Leave(object sender, EventArgs e)
            {
                        // je test la chaine avec la fonction double.tryparse si elle respecte la culture je converti au format.
                        if (double.TryParse(TextBox.Text.Trim(), out licence))TextBox.Text = licence.ToString("C");
                        else
                        {
                            // Exemple si saisie d'un point au lieu d'une virgule c'est erreur
                            MessageBox.Show(this,"Erreur dans votre saisie !\r\nSaisir que des nombres","Fenetre",MessageBoxButtons.OK,MessageBoxIcon.Error);
                            TextBox.Text = licence.ToString("C");
                            TextBox.Focus();
                        }
            }
     
            private void TextBox_Enter(object sender, EventArgs e)
            {
              // Bon ici c'est un peu brut de decroffrage mais ca tourne.
             // je supprime les 2 derniers caractères de la longueur de la chaine (c'est uniquement lors de la nouvelle convertion lors du leave du textbox)
     
              // Si Quelqu'un a envie de le parfaire, c'est bien pour mettre dans la faq.
                int lenght = TextBox.TextLength;
                string valeur = string.Empty;
     
                        licence = double.Parse(TextBox.Text.Remove(lenght - 2));
                        valeur = licence.ToString();
                TextBox.Text = valeur;
            }
     
        }
    j'espere ne rien avoir oublier car j'ai supprimer une partie du code, par contre pour le test met toi un autre TextBox et promene toi de l'un a lautre avec la tabulation pour voir le passage en saisie et le formatage en euro.

    si quelqu'un peu le mettre dans la faq ca serais bien
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] textbox qui contient un type float"prix"
    Par WIEM7 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/04/2012, 08h14
  2. existe-t'il un input mask pour un textBox?
    Par Golzinne dans le forum Silverlight
    Réponses: 6
    Dernier message: 06/10/2011, 16h33
  3. Masked TextBox Column
    Par mo5andes dans le forum Windows Forms
    Réponses: 0
    Dernier message: 04/03/2009, 11h46
  4. Réponses: 2
    Dernier message: 06/05/2008, 07h18
  5. [Word] masked textbox en VBA
    Par TIREUR dans le forum VBA Word
    Réponses: 2
    Dernier message: 28/02/2007, 14h37

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