Détecter click "long" bouton [Résolu]

cs_bigger 5 Messages postés lundi 20 octobre 2008Date d'inscription 20 juin 2009 Dernière intervention - 24 mars 2009 à 14:45 - Dernière réponse : cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention
- 28 mars 2009 à 09:39
Bonjour à tous,

J'ai deux boutons de chaque côté d'une progressbar continue, l'un pour incrémenter et l'autre pour décrémenter cette derniere (bouton + et -).
J'aimerais détecter un click long sur ces 2 boutons pour modifier la valeur de la progressbar à la manière d'un NumericUpDown, en augmentant progressivement la vitesse de défilement, car le pas est assez fin et le range grand. Le fait de cliquer à chaque fois pour incrémenter la progressbar demande beaucoup de temps surtout lorsqu'on doit aller loin.

Il y a certainement une combine avec les évenements MouseDown, MouseEnter, Click mais je n'arrive pas à la trouver.
Je pensais pouvoir récupérer les méthodes du composant NumericUpDown, mais je ne sais pas si on peut accéder au code du composant et si oui, comment faire.

Si qqun à un filon...Merci. 
Afficher la suite 

1 réponse

Répondre au sujet
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 28 mars 2009 à 09:39
+3
Utile
Bonjour,

une solution consiste à armer un timer dans le mouse down et à le désarmer dans le mouse up
dans l'evenement du timer tu incremente un compteur (ou autre action)

essaye ça:
un bouton button3, un label label1 sur un form Form1

Timer timer=new Timer();
int count=0;

private void Form1_Load(object sender, System.EventArgs e)
{
timer.Enabled=false;
timer.Interval=10;
timer.Tick+=new EventHandler(timer_Tick);
}

private void button3_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
count=0;
timer.Start();
}
private void button3_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
timer.Stop();
}
private void timer_Tick(object sender, EventArgs e)
{
count++;
label1.Text=count.ToString();
}

C# is amazing, enjoy it!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Robert33

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.