in Cliquez sur un seul clic - Passage du curseur en C # Je peux gérer des événements simples et doubles sur la souris, mais je veux gérer un clic de la souris Code> Click Code> dans C # Windows Textbox P. > Exemple: p> MS-Word code> Les événements de clic de souris sont utilisés comme:
Double-clic - Sélectionne le mot
Triple Click - sélectionne le paragraphe p>
BlockQuote>
5 Réponses :
Il vous suffit de stocker l'heure à un double clic sur cette case. Ensuite, dans le gestionnaire en un seul clic, vérifiez si un double clic est arrivé il y a plus de N millisecondes (n = 300 ou plus). p>
Dans ce cas, appelez votre fonction TripEleclick () directement ou définissez un nouvel événement pour que vous a dérivé «triplecickawaretextbox». P>
NE PAS Devinez I> Un temps qui va être trop court pour certains utilisateurs, trop longtemps pour les autres. Utilisez le temps que l'utilisateur a configuré dans son système d'exploitation comme heure de double clic préféré. Il est accessible via Systeminformation.doubleclickTime - msdn.microsoft .com / fr-nous / bibliothèque / ...
Vous souhaitez également vous assurer que chaque clic survient dans une zone de sélection du dernier clic, avec la taille SystemInformation.DoubleclickSize.
Regardez ceci: MouseButToneventargs.ClickCount P>
qui devrait le couvrir, je suppose. P>
Pour les formulaires de Windows (plutôt que WPF), il voudrait probablement que la propriété de MouseEventventargs.ClickCount très similaire: msdn.microsoft.com/en-us/library/...
... Sauf que cela ne fonctionne pas dans Winforms. Dans une zone de texte au moins, ClickCount ne renvoie jamais 1 ... même sur un double-clic!
Je travaillais sur un problème similaire sur C ++
Tout d'abord, vous devez comprendre comment les événements sont tirés, je vais prendre un clic à l'aide du bouton gauche de la souris: - Cliquez une fois -> bouton gauche cliquez sur l'événement tiré - Double-clic -> Double-gauche Double-clic Evénement Faire le feu p>
Windows vous prend en charge uniquement jusqu'à ce niveau. P>
Pour triple clic, c'est essentiellement un clic à la suite d'un double clic avec l'entretien entre temps assez petit. Ainsi, ce que vous devez faire est de gérer un événement de clic, de vérifier s'il y avait un double clic avant cela et de tirer un événement triple clic. P>
si le code est différent, voici comment je le fais: < / p>
cliquez sur le manutention em> p> double Cliquez sur le gestionnaire em> p> Les fonctions que j'utilise était la suivante: p>
Faites ceci:
private int _clicks = 0; private System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer(); private void txtTextMessage_MouseUp(object sender, MouseEventArgs e) { _timer.Stop(); _clicks++; if (_clicks == 3) { // this means the trip click happened - do something txtTextMessage.SelectAll(); _clicks = 0; } if (_clicks < 3) { _timer.Interval = 500; _timer.Start(); _timer.Tick += (s, t) => { _timer.Stop(); _clicks = 0; }; } }
J'aime le code qui vient de tomber et de fonctionner. +1. Merci!
J'ai adapté la réponse de Jimmy T pour encapsuler le code dans une classe et faciliter la demande à plusieurs contrôles sur un formulaire.
La classe est la suivante: P>
partial class MyForm : Form { public MyForm() { InitializeComponent(); myTextBox.Tag = new UIHelper.TripleClickHandler(myTextBox); } }