La détection de touches Ctrl+Gauche (bouton de la souris) dans le gestionnaire d'événement MouseDown
Quand j'ai d'abord appuyer sur la touche contrôle enfoncée (touche de gauche), puis cliquez sur le bouton gauche de la souris, pourquoi le code suivant est exécuté. Je suis la modification du code existant et le code ci-dessous est déjà là. Je suppose que personne n'a essayé avant, avec la touche contrôle enfoncée, il n'a été utilisé avec le bouton gauche de la souris cliqué et il a toujours travaillé dans ce cas. Mais je veux un autre code exécuté lorsque la souris vers la gauche touche est pressée en même temps que la touche ctrl est enfoncée.
private void treeList1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
TreeList tree = sender as TreeList;
if (e.Button == MouseButtons.Right && ModifierKeys == Keys.None && tree.State == TreeListState.Regular)
{
//the code that is here gets executed
MessageBox.Show("I am here");
}
}
Je serais très reconnaissant de toute indication ou de l'aide.
P. S. je tiens à ajouter que, dans le cas ci-dessus quand j'ai inspecter e.bouton de valeur, il montre que l'égalité de Droit bien que j'ai appuyé sur le bouton gauche de la souris et de la Touche Ctrl. C'est un mystère pour moi.
Cher StackOverflow boursiers :j'ai trouvé le problème, depuis que je suis en utilisant une machine virtuelle sur un MAC, j'ai dû désactiver le Mappage des touches sur ma Machine Virtuelle préférence et maintenant, mon code fonctionne. Merci à tous pour votre aide.
Est-ce .net 4.0? Cela peut vous aider: stackoverflow.com/questions/4705428/...
L'événement est déclenché comme prévu et que vous êtes certain que le
msgbox
code est exécuté?Il contient de Contrôle
il est .net4 et le lien n'a pas aidé. Merci quand même.
OriginalL'auteur user1298925 | 2013-02-18
Vous devez vous connecter pour publier un commentaire.
Keys.None
a une valeur de 0, ce qui rend difficile à détecter le moment où "aucune touche n'est pressée" lorsqu'il est utilisé seul. Ce:Apparaîtra une boîte de message quelle que soit la combinaison de touches est, aussi longtemps que le clic avec le bouton gauche.
Cependant, ce:
N'apparaît une boîte de message lorsque le
Control
touche est maintenue enfoncée (et le bouton gauche de la souris est cliqué).Essayer d'inverser vos conditions et de détecter lorsque le
Control
touche est enfoncée lorsque vous cliquez (au lieu de détecter lorsqu' aucune touche n'est pressée). Cela étant dit, je vais avoir un moment difficile obtenir le même code pour travailler avecKeys.ControlKey
ouKeys.LControlKey
pour une raison quelconque, afin d'isoler les gauche de la touche de contrôle besoin d'un peu plus de recherche.Sacrément bon, je viens de voir ce qui manquait.. désolé!! édité...
J'ai essayé ce code (deuxième code-block) - ça marche!!! Merci à vous, @Mat'sMug! 🙂
OriginalL'auteur Mathieu Guindon
Le problème était qu'il y avait une clé de mappage entre MAC et ma Machine Virtuelle Windows qui devaient être désactivé. Merci pour toute l'aide
Keys.None
travaillé?N'ai pas essayé encore, je le ferai, et je ne manquerai pas de vous en informer. Merci encore.
OriginalL'auteur user1298925