Bonjour,
je souhaite récupérer les touches numériques (pavé numérique + touches du haut du clavier) quand celles-ci sont pressées.
Pour cela j'utilise une énumération
Je récupère bien les bonnes valeurs par contre, les clés s'intervertissent entre les touches du clavier numérique (numPad) et les touches du haut du clavier(D) .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public enum EnumTest { NumPad0 = 0, NumPad1 = 1, NumPad2 = 2, NumPad3 = 3, NumPad4 = 4, NumPad5 = 5, NumPad6 = 6, NumPad7 = 7, NumPad8 = 8, NumPad9 = 9, D0 = 0, D1 = 1, D2 = 2, D3 = 3, D4 = 4, D5 = 5, D6 = 6, D7 = 7, D8 = 8, D9 = 9, } private void Window_KeyDown(object sender, KeyEventArgs e) { String cle = ((EnumTest)Enum.Parse(typeof(EnumTest), e.Key.ToString())).ToString(); //récupération de la clé int valeur = (int)((EnumTest)Enum.Parse(typeof(EnumTest), e.Key.ToString())); //récupération de sa valeur MessageBox.Show("L'enumeration est : " + cle + "\r\n Sa valeur est " + valeur); }
Par exemple:
- si je clic sur les touches 0, 1, 2, 3, 6, 7 ou 9 du pave numérique, les clés qui s'affichent sont bien numPad0, 1 , 2, 3, 6, 7 ou 9 . Par contre si je clique sur les touches 1, 2, 3, 6, 7 ou 9 du haut du clavier j'ai toujours numPad0, 1 , 2, 3, 6, 7 ou 9 qui s'affichent au lieu de (D0, D1, D2, D3, D6, D7 ou D9)
- Inversement, si je clic sur la touche 4, 5 ou 8 du pave numérique, les clés qui s'affichent sont D4, D5 ou D8 (alors que çà devrait être numPad 4,5 ou 6). Si je clique sur les touches 4, 5, ou 8 du haut du clavier j'ai cette fois ci les touches correspondantes D4, D5 et D8
Si je modifie le fichier Enum en gardant que les NumPadX, toutes les clés du pavé numériques sont reconnues.
Heu.....j'espère que c'est clair???
Si quelqu'un à une explication à ce comportement?
Merci par avance
Partager