2009-03-05 7 views
1

Ich möchte^N funktionieren wie Abwärtspfeil in einem Baum Steuerelement. Ich dachte ich gerade folgendes an die KeyDown Handler hinzufügen:SendKeys.Send und Schlüsselmodifikatoren ausschalten

SendKeys.Send("{Down}"); 

aber dies wird als bei gedrückter Ctrl-Pfeil nach unten, da die Steuer-Taste wird zur Zeit gedrückt behandelt. Die msdn page beschreibt, wie Sie den Steuermodifikator einschalten, aber nicht, wie Sie es ausschalten.

Danke, Keith

Antwort

4

Leider spät zur Party kommen, aber ich denke, dass ich eine Lösung gefunden:

Zunächst importieren SetKeyboardState:

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

Dann rufen Sie es einfach mit einem auf Null gesetzten Byte-Array vor SendKeys.Send Aufruf():

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

Das funktionierte für mich. Hoffe das hilft!

+0

+1 Arbeitete auch für mich;) – JustLoren

0

Hier ist der harte Weg, es zu tun. Ich gebe zu, dass dies nicht der optimale Weg ist. Ich bin mir sicher, dass du das schon weißt. Möglicherweise möchten Sie die WindProc-Methode des Steuerelements überladen & Verwenden Sie SendMsg Win32 Api. So habe ich die Dinge heute wieder zum Laufen gebracht.

1

Sie können p/auf keybd_event aufrufen. Dadurch können Sie simulieren, dass sich ein Schlüssel sowohl im "Hoch" - als auch im "Ab" -Zustand befindet.