2009-03-05 7 views
1

Je souhaite que^N fonctionne de la même manière que la flèche vers le bas dans un contrôle d'arborescence. Je pensais que je venais dois ajouter ce qui suit au gestionnaire KeyDown:SendKeys.Send et désactivation des modificateurs de touches

SendKeys.Send("{Down}"); 

mais cela devient comme une flèche traitais de commande vers le bas depuis la touche Ctrl enfoncée actuellement. Le msdn page décrit comment activer le modificateur de contrôle mais pas comment l'éteindre.

Merci, Keith

Répondre

4

Désolé de venir en retard à la fête mais je pense avoir trouvé une solution:

Tout d'abord, l'importation SetKeyboardState:

[DllImport("user32.dll")] 
public static extern bool SetKeyboardState(byte[] lpKeyState); 

Ensuite, il suffit d'appeler avec un tableau d'octets mis à zéro avant d'appeler SendKeys.Send():

SetKeyboardState(new byte[256]); 
SendKeys.Send("your key sequence"); 

Cela a fonctionné pour moi. J'espère que cela t'aides!

+0

+1 A travaillé pour moi aussi;) – JustLoren

0

Voici la dure de le faire. Je reconnais que ce n'est pas la meilleure façon de le faire. Je suis sûr que vous le savez déjà. Vous voudrez peut-être surcharger la méthode WindProc du contrôle & utilisez SendMsg Win32 Api. C'est ainsi que j'ai utilisé les choses pour travailler dans la journée.

1

Vous pouvez invoquer p/keybd_event. Cela vous permettra de simuler une clé à la fois en état "haut" et "bas".

Questions connexes