DoubleClick sans le Click

Signaler
Messages postés
25
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
14 mars 2005
-
Messages postés
25
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
14 mars 2005
-
Voilà mon problème : j'ai une NotifiyIcon pour mon programme, et j'ai associé des événements au Click et au DoubleClick

Seulement, quand je DoubleClick l'icone, l'événement associé au
doubleClick se lance bien, mais l'événement lié au Click aussi. Y
a-t-il un moyen d'éviter cela ?

2 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Le double clic n'étant après tout qu'un clic suivit d'un autre je ne pense pas qu'on puisse eviter la levée de l'event Click
Le tout est de ne pas se servir des 2 en même temps.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
25
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
14 mars 2005

Malheureusement, c'est bien la réponse à laquelle je m'attendais...
mais j'ai trouvé une méthode qui permet de pallier à ce problème :

public MaClasse() // Le constructeur de la classe
{
// Le reste de votre code
timer1.Interval = SystemInformation.DoubleClickTime;
}
private void GestionnaireClick()
{
// Votre code à exécuter après un Click
}
private truc _Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}

private truc_DoubleClick(object sender, EventArgs e)
{
timer1.Enabled = false;
// Votre code à exécuter après un DoubleClick
}

private timer1 _Tick(object sender, EventHandler e)
{
timer1.Enabled = false;
GestionnaireClick(); // Appelle votre Gestionnaire de Clic
}

Ce code utilise en fait un timer, qui est déclenché quand un click est exécuté, et qui s'arrête sur un doubleClick. Si, avant qu'il ne s'arrête, l'intervalle pour le DoubleClick est passé, l'événement du Click se réalise.
Ce n'est pas une solution sans faille, puisque si l'intervalle pour le DoubleClick est grand, il faudra attendre avant que l'événement du Click ne se réalise.
De plus, le Click est exécuté sur les clics droit comme gauche, donc veillez à prendre en compte cela !

Source : http://www.codeproject.com/script/comments/forums.asp?forumid=1649&XtraIDs=1649&searchkw=double+click&sd=11%2F15%2F1999&ed=11%2F24%2F2004&select=931619&df=100&fr=7473.5#xx931619xx