2009-03-05 24 views
1

^^ Bir ağaç denetiminde^N'nin Aşağı ok ile aynı işi yapmak istiyorum.SendKeys.Sanahtar değiştiricilerini kapat ve kapat

SendKeys.Send("{Down}"); 

ama bu şu anda basıldığında kontrol tuşu beri Kontrol-Aşağı ok olarak ele alınır: Ben sadece KeyDown işleyicisi aşağıdakileri ekleyin olurdu düşündük. msdn page , denetim değiştiricisini nasıl açacağınızı, ancak nasıl kapatılmayacağını açıklar.

sayesinde

cevap

4

partisine geç gelmek Üzgünüm ama ben bir çözüm buldum:

Birincisi, ithalat SetKeyboardState:

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

, sadece sıfırlanmış bayt dizisi ile diyoruz SendKeys.Send çağırmadan önce(): Bu benim için çalışmıştı. Bu yardımcı olur umarım!

+0

+1 Benim için çok çalıştı;) – JustLoren

0

Keith İşte bunu yapmanın zor bir yol. Bunu yapmanın en iyi yolu olmadığını itiraf ediyorum. Eminim bunu zaten biliyorsun. Denetimin & kullanımı SendMsg Win32 Api WindProc yöntemini aşırı yüklemek isteyebilirsiniz. Bu şekilde gün içinde işe yarayan şeyleri kullanırdım.

1

Keybd_event'e çağrı yapabilirsiniz. Bu, hem "yukarı" hem de "aşağı" durumda olan bir anahtarı simüle etmenizi sağlar.

İlgili konular