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 :

click de souris multiple non souhaités sur mousedown et mouseup events


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut click de souris multiple non souhaités sur mousedown et mouseup events
    Bonjour a tous,
    j'ai creé un bouton qui envoie une instruction lorsqu'il est appuyé et en envoie une autre dés qu'il est relaché. ceci avec mouseDown et mouseUp events.

    et lorsque je relache le bouton de la souris, je met mon bouton en et ceci pendant 500 millisecondes.
    le comportement qui me derange est que lorsqu'on clique plusieurs fois, meme sur le bouton qui est desactivé, le click est pris en compte, et le bouton s'activera et se desactivera jusqu'a ce que les temps soient ecoulés.

    une proposition?
    merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    lut,
    drôle de technique mais bon...
    vu que ton bouton a une valeur Enabled, pourquoi ne pas l'utiliser comme test ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (monbutton.Enabled)
         je traite
    else 
         je traite po !
    (Thread.Sleep(500) = berk berk berk !!!!!!!!)^10

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 33
    Par défaut
    Citation Envoyé par Themacleod1980 Voir le message
    (Thread.Sleep(500) = berk berk berk !!!!!!!!)^10
    +1

  4. #4
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut sensibilité click
    le Thread.Sleep(500) c'est pour simuler le comportement de la machine que je commande,
    en fait c'est 6 bouton qui font bouger 3 axes d'un systeme 3d.

    j'ai essayé avec un booleén et une boucle while
    while boutons enabled -> instructions

    mais j'ai le meme soucis,
    je crois que Visual studio enregistre les clicks,

    il doit y avoir une option qui elimine ce probleme.

    Avez vous deja eté confronté à un probleme de ce type?

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    a mon avis ton problème vient du sleep :
    pendant ce sleep, le système ne peut pas traiter les évènements (clics en l'occurence) donc il doit les ajouter a sa liste d'évènements.
    en mettant un doevents(), il peut traiter les events, la preuve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    button1.Enabled = false;
    for (int cpt=0;cpt<50;cpt++)
    {
          System.Threading.Thread.Sleep(1);
          Application.DoEvents();
    }            
    button1.Enabled = true;
    ca marche (mais j'ai terriblement honte là ^^)

  6. #6
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut
    voici mon code: (il y a un thread.sleep )

    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
      private void FlecheDroite_MouseDown(object sender, MouseEventArgs e)
            {
                serialPort1.Write(GO);
            }
            private void FlecheDroite_MouseUp(object sender, MouseEventArgs e)
            {
                flecheButton.enabled=false;
                serialPort1.Write(Stop);
                Thread.sleep(500);
     
    // ce qu'il faut mettre
                Application.DoEvents();
     
                flecheButton.enabled=true;
            }
    Mais bon

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

Discussions similaires

  1. Comportement non souhaité sur IE
    Par benito25 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 19/03/2014, 09h42
  2. VBA - Macro : Action sur click droit souris sur une cellule
    Par Raphael DIAZ dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/02/2011, 10h45
  3. [PPT-2007] action sur click de souris dans une liste déroulante
    Par oleronnais dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 29/01/2010, 07h37
  4. Simulation d'un click de souris sur un bouton ReyCommand
    Par Chatbour dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 28/07/2007, 09h53
  5. MoveFirst non souhaité sur Formulaire
    Par GAGNON dans le forum IHM
    Réponses: 7
    Dernier message: 29/12/2006, 11h53

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