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 :

Event lost focus appelé en boucle


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 43
    Par défaut Event lost focus appelé en boucle
    Bonjour,

    Je débute en C#, pour vérifier qu'une textbox ne contient une valeur numérique j'utilise le code suivant :
    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
     
    private void check_value(object sender)
            {
                TextBox tb = (TextBox)sender ;
                MessageBoxResult result;
                if (!Utility.isNumeric(tb.Text)){
                    result = MessageBox.Show("Vous ne pouvez entrer que des chiffres");
                    tb.Focus();
                }
            }
     
     private void Amount_1_LostFocus(object sender, RoutedEventArgs e)
            {
                check_value(sender);
     
            }
    Problème, quand la valeur contient une lettre, l'event Lostfocus de la textbox est appelé en boucle et je ne comprends absolument pas pourquoi vu que je lui donne le focus juste avant...

    Merci de m'aider

  2. #2
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Salut,

    quand tu envoi
    MessageBox.Show("Vous ne pouvez entrer que des chiffres")

    Ta TextBox perd le focus...
    Du coup, c'est une boucle sans fin...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 43
    Par défaut
    Même si j'enlève le message ça boucle (et ça fini par exploser la pile).
    En plus le focus() est après le messagebox.show donc il le récupère après que le message ait été affiché.

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Essaye plûtot avec l'event Validating :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private bool check_value(object sender)
    {
        bool result = Utility.isNumeric(((TextBox)sender).Text) ;
        if (!result) MessageBox.Show("Vous ne pouvez entrer que des chiffres");
        return result
    }
     
    private void Amount_1_Validating(object sender, CancelEventArgs e)
    {
       e.Cancel = !check_value(sender);
    }

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Essaye plûtot avec l'event Validating
    +1, c'est ce que j'allais dire... Validating sert exactement à faire ce genre de choses, pas la peine de jouer manuellement avec le focus

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 43
    Par défaut
    J'ai pas d'évènement validating attaché à ma textbox si j'ajoute le code comme ça il ne se passe rien.
    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/11/2011, 16h00
  2. paintComponent est appelé en boucle
    Par HNoury dans le forum Débuter
    Réponses: 5
    Dernier message: 01/11/2010, 18h33
  3. appel en boucle sur une DLL
    Par kaygee dans le forum ASP
    Réponses: 9
    Dernier message: 29/05/2007, 14h51
  4. Réponses: 6
    Dernier message: 17/08/2006, 19h16
  5. [JSP/Servlet] Appel en boucle pour tester la rapidité
    Par kurtalis dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 15/06/2006, 17h53

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