Détecter à la fois gauche et droit de la souris en même temps?
Je vais refaire Démineur windows (XP) et quelque chose qu'ils avaient compris que, si vous cliquez sur un numéro avec autant de drapeaux que c'est le numéro à gauche et le bouton droit de la souris dans le même temps, il révèle tous les autres cachés carreaux autour de ce nombre.
Je vais avoir un moment difficile à dire lorsque les deux Gauche et à Droite des boutons de la souris sont pressées à l'exact même temps... je suis en utilisant une paire de booléens, un pour chaque bouton avec le OnMouseDown et OnMouseUp événements, mais si les 2 utilisateur clique sur les boutons à l'exact même temps (ou très proche), alors qu'un seul événement MouseDown s'en va et l'autre pas... Si vous cliquez et maintenez l'un des boutons, puis cliquez et maintenez l'autre, le code fonctionne bien.
Est-il un meilleur moyen de détecter ce genre de "double", cliquez sur?
Edit:
Bien, petite histoire pour expliquer pourquoi j'ai foiré ce (il a travaillé tout le long).
J'ai un macbook pro équipé de Windows 7. Pour ceux d'entre vous qui ne connaissent pas, le macbook pro dispose d'une barre unique pour un bouton de la souris qui, normalement, les clics, mais si vous placez 2 doigts vers le bas à droite de clics, de sorte que vous ne pouvez pas faire les deux (et pas de moyen de moyen de la souris). J'ai donc été la création de mon application et de l'envoyer à mon ami, il me dit qu'il ne fonctionnait pas, donc j'ai posté cette question. J'ai finalement décidé de l'essayer sur mon autre ordinateur portable, un Dell XPS avec 2 boutons de la souris... une Fois qu'il a travaillé là je suis passé à d'autres amis et ils ont confirmé qu'il travaillait. Je ne sais pas comment mon premier ami a tout fait foiré, mais la morale de l'histoire est de ne pas acheter quoi que ce soit Apple. Au moins, c'est la morale que j'ai eu.
OriginalL'auteur Corey Ogburn | 2010-07-09
Vous devez vous connecter pour publier un commentaire.
La classe de créer une variable booléenne pour les boutons gauche et droite par défaut à false. Lorsque le bouton de la souris événement se déclenche définir la variable à true et vérifier si les deux sont vrais. Lorsque la souris vers le haut feux de définir la variable à false.
Je ne vous en guise de réponse, car en fin de compte, c'est le code de mon application... même si c'était le code que j'ai eu tout le long. Stupide mac...
OriginalL'auteur buckbova
Code Complet:
OriginalL'auteur Michael Buen
Essayer cela,
If e.Button And (MouseButtons.Left Or MouseButtons.Right) = (MouseButtons.Left Or MouseButtons.Right)
peut travailler.J'ai essayé les deux de ceux-ci. Ils ne sont pas des drapeaux, ils sont des entités distinctes, et il ne peut être qu'une à la fois.
OriginalL'auteur Wassim AZIRAR
Type d'une vieille question, mais je suis tombé sur ce (coïncidence aussi tout en faisant un dragueur de mines clone) et a estimé qu'il manquait quelque chose. Si vous voulez avoir les deux sur le bouton, mais encore attraper régulière simple clic sur un bouton, vous pouvez effectuer les opérations suivantes:
Il se déplace de la détection de la souris vers le haut plutôt que de la souris vers le bas. Il ne fait rien jusqu'à ce que vous relâchez les deux boutons. Cela fonctionne exactement comme la version Windows 7 de Démineur, sauf que le bouton de droite, seul, à l'origine, fonctionne sur des souris vers le bas. (Honnêtement, je préfère ma version). Il y a un peu de redondance dans les deux-cliquez sur cas est appelé à deux endroits en fonction de si vous relâchez le bouton gauche ou droit de la première, mais cela devrait probablement être une seule ligne de la fonction appeler de toute façon. Bonus: Vous pouvez vérifier la
both_click
drapeau d'ailleurs dans le but d'attirer l'indice-carré autour de votre curseur indiquant les places seront dévoilés lorsque vous relâchez les boutons.OriginalL'auteur Darrel Hoffman
Une autre option est d'utiliser la statique MouseButtons sur le Système.De Windows.Les formulaires.Contrôle classe
Cela vous indiquera tous les boutons de la souris sont actuellement activé, de sorte que vous pouvez faire quelque chose comme ce qui suit:
Vous pouvez aussi consulter les MSDN exemple
OriginalL'auteur James
J'ai le code suivant pour travailler dans ma Cliquez sur l'Événement.
Lorsqu'un seul bouton de la souris est appuyé sur le "Contrôle.Bouton" prend la valeur de "MouseButtons.Aucun"
Mais quand les deux gauche et droit de la souris, utiliser les touches "Contrôle.Bouton" prend la valeur "MouseButtons.Droite" ou "MouseButtons.De gauche" selon ce qui a été pressé à la première /dernière (en fonction de combien de temps il était entre la gauche et le bouton droit enfoncé)
OriginalL'auteur Ola Ström