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 :

Timer dans un KeyPress


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 31
    Par défaut Timer dans un KeyPress
    Bonjour tous le monde.

    Voila, je deviens fou. Un peu d'aide s'il vous plait. Voici ma fonction :

    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
     using System.Diagnostics;public void Touche_Clavier(Object o, KeyPressEventArgs e)
            {
                string Saisie = TbSaisie.Text;
                Stopwatch sw = new Stopwatch();
     
                // Initialisation : dbut de la mesure
                sw.Start();
     
                if (e.KeyChar == (char)Keys.Enter)//Si la touche ENTREE est saisie : 
                {          
                    sw.Stop();
                    if (sw.Elapsed.Seconds >= 1)
                    {
                        TbSaisie.Text = "";
                    }
                    else if (sw.Elapsed.Seconds < 1)
                    {
                    TraitementSaisie(Saisie);
                    TbSaisie.Text = "";
                    }
                }
    On rentre donc dans cette fonction si une touche du clavier est saisie. A ce moment la, un timer se met en marche. Si la touche entrer est saisie, le timer s'arrete. On regarde alors le temps qui c'est écoulé. Si le temps est supérieur ou égal à 1 seconde, on efface le contenu de la saisie est on recommence tout. Dans le cas contraire, on accéde à la fonction traitement saisie puis on efface le contenu de la saisie.

    Mon probléme, c'est que en mode pas à pas,avec un temps >1, le programme fonctionne bien ( point d'arret au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (sw.Elapsed.Seconds >= 1)
    ). Mais lorsque j'execute ma fonction en mode normal, la fonction ne marche plus et va directement à la fonction Traitement saisie. Impossible de savoir pourquoi.

    Pourriez vous me donner des conseils pour résoudre mon probléme. Merci d'avance.

    Cordialement.

  2. #2
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    Bonjour,

    c'est tout à fait normal, ta variable StoWatcher est locale donc déclarée à chaque fois que tu appuises sur une touche, donc toujours à zéro, tiens ça devrait marcher ça:

    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
     
    Stopwatch sw = new Stopwatch();
            public void Touche_Clavier(object sender, KeyPressEventArgs e)
            {
     
                if (e.KeyChar == (char)Keys.Enter)
                {
                    if (sw.IsRunning) //s'il est démarré on l'arrete et on teste.
                    {
                        sw.Stop();
                        if (sw.Elapsed.Seconds >= 1)
                        {
     
                        }
                        else
                        {
     
                        }
                    }
                }
                else //une autre touche
                {
                    if (!sw.IsRunning) // s'il est pas lancé, on le lance.
                    {
                        sw.Reset(); // remettre à zéro
                        sw.Start(); // démarrer
                    }
                }
            }

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Allspark Voir le message
    Bonjour tous le monde.

    Voila, je deviens fou.
    C'est pas absolument obligatoire pour travailler dans l'IT, mais ça aide.


Discussions similaires

  1. Creer un composant non visuel(Timer) dans une DLL
    Par hugobob dans le forum Composants VCL
    Réponses: 1
    Dernier message: 06/06/2006, 16h20
  2. Création du timer dans une Dll
    Par Hokagge dans le forum MFC
    Réponses: 13
    Dernier message: 14/03/2006, 18h04
  3. Réponses: 4
    Dernier message: 08/07/2005, 17h37
  4. Utiliser un timer dans une application console
    Par chavers dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2005, 14h07
  5. Timer dans une feuille excel
    Par bbkenny dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 28/01/2005, 10h43

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