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

C# Discussion :

appliquer des règles sur des textbox


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    developpement
    Inscrit en
    Décembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : developpement
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 17
    Par défaut appliquer des règles sur des textbox
    Bonjour,

    dans une application aspnet(c#) j'ai des textbox sur lesquels je dois appliquer un certain nombre de règles.

    Il ya des textbox qui ne doivent accepter que des entier signés de 10 chiffres maximum.

    D'autres textbox ne doivent contenir que des float avec un certain nombre de chiffres avant et après la virgule.

    Comment faire ?

    Merci pour vos aides

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut
    Salut ,

    moi je me pencherais vers les expressions régulières je penses que ça pourrait répondre à ton besoin

    @+

  3. #3
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    Salut,

    Tu peux aussi regarder du côté du contrôle MaskedEdit de l'AjaxControlToolKit : Lien

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Salut,
    tu peux utiliser soit une MaskedTextBox soit une Regex.
    Je t'ai fait un petit exemple avec des Regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private void tb_TextChanged(object sender, EventArgs e)
            {
                if (Regex.IsMatch(tb.Text, "^[0-9]{1,10}$"))
                {
                    tb.BackColor = new TextBox().BackColor;
                }
                else
                {
                    tb.BackColor = Color.Red;         
                }
            }
    Ici on est abonné à l'évènement changement du texte de la TextBox tb1. Donc chaque fois que le texte change la fonction teste que la chaine satisfait aux conditions de la Regex. Si c'est le ca sla couleur de fond de la tb est normale. Sinon on applique la couleur rouge.
    Ici la Regex veut une chaine de 10 chiffres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private void tb2_TextChanged(object sender, EventArgs e)
            {
                if (Regex.IsMatch(tb2.Text, "^^\\d*\\.\\d{3}$"))
                {
                    tb2.BackColor = new TextBox().BackColor;
                }
                else
                {
                    tb2.BackColor = Color.Red;
                }
            }
    Comme tu n'as pas bien spécifié le format du nombre à virgule je tente un truc ? ^^
    La regex de la Textbox tb2 veut une chaine qui correspond à un nombre sans limite de chiffre pour la partie décimale et 3 chiffres pouur la partie derrière la virgule.
    Cherches sur google il y a plein de Regex préconçues. Mais que ça ne t'empêches pas d'apprendre à les faire toi même ^^

    A+

  5. #5
    Membre averti
    Femme Profil pro
    developpement
    Inscrit en
    Décembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : developpement
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 17
    Par défaut
    Merci pour vos réponse.

    J'ai essayé l'expression suivante pour un décimal de 13 chiffres avant la virgule et 4 chiffres après la virgule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     if (Regex.IsMatch(reg.Text, "^[-+]?[0-9]{1,13}\\.\\d{4}$"))
            {
                reg.BackColor = new TextBox().BackColor;
            }
    le problème c'est que le nombre est coloré en rouge si :

    - je tape un nombre sans "."
    -je tape un nombre avec un nombre de chiffre après la virgule inférieur a 4

    Je veux que le nombre soit accepté si je tape par exemple : 123 ou bien 1234,12

    merci pour vos aides.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 9
    Par défaut
    Citation Envoyé par pigeon2011 Voir le message
    J'ai essayé l'expression suivante pour un décimal de 13 chiffres avant la virgule et 4 chiffres après la virgule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     if (Regex.IsMatch(reg.Text, "^[-+]?[0-9]{1,13}\\.\\d{4}$"))
            {
                reg.BackColor = new TextBox().BackColor;
            }
    le problème c'est que le nombre est coloré en rouge si :

    - je tape un nombre sans "."
    -je tape un nombre avec un nombre de chiffre après la virgule inférieur a 4

    Je veux que le nombre soit accepté si je tape par exemple : 123 ou bien 1234,12
    Et ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (Regex.IsMatch(reg.Text, "^[-+]?[0-9]{1,13}(\\.\\)?d{0,4}$"))
    {
            reg.BackColor = new TextBox().BackColor;
    }

Discussions similaires

  1. Comment ajouter des séries dans des graphes sur des feuilles variables
    Par Molomarcopolo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2012, 16h26
  2. Trigger pour mettre des droits sur des procedures et des vues
    Par briino dans le forum Développement
    Réponses: 3
    Dernier message: 23/09/2009, 09h44
  3. [A-03] Test sur des dates dans des textBox
    Par moilou2 dans le forum IHM
    Réponses: 3
    Dernier message: 27/10/2008, 13h39
  4. Réponses: 1
    Dernier message: 17/10/2008, 13h11
  5. Appliquer des liens sur des variables PHP
    Par sasaas dans le forum Langage
    Réponses: 3
    Dernier message: 29/03/2008, 16h27

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