DoubleClick sans le Click

cs_gulix Messages postés 25 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 14 mars 2005 - 8 janv. 2005 à 13:44
cs_gulix Messages postés 25 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 14 mars 2005 - 8 janv. 2005 à 19:01
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 janv. 2005 à 13:56
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#
0
cs_gulix Messages postés 25 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 14 mars 2005
8 janv. 2005 à 19:01
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
0
Rejoignez-nous