سؤال

وأريد أن ^ N عمل نفس السهم لأسفل في شجرة التحكم. اعتقدت كنت فقط لإضافة ما يلي إلى معالج KeyDown:

SendKeys.Send("{Down}");

ولكن هذا يحصل يعامل تحكم لأسفل السهم منذ مفتاح التحكم الضغط حاليا. و MSDN الصفحة يصف كيفية تشغيل معدل السيطرة ولكن ليس في كيفية إيقاف تشغيله.

وشكرا، كيث

هل كانت مفيدة؟

المحلول

وآسف لتأتي في وقت متأخر إلى الحزب ولكن أعتقد أنني وجدت الحل:

أولا، SetKeyboardState الاستيراد:

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

وبعد ذلك، ما عليك سوى الاتصال مع مجموعة بايت صفرية قبل استدعاء SendKeys.Send ():

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

والتي عملت بالنسبة لي. ويساعد هذا الأمل!

نصائح أخرى

ويمكنك ص / استدعاء إلى keybd_event. والتي تمكنك من محاكاة مفتاح يجري في كل من "حتى" و "القاعدة" للدولة.

إليك بالطريقة الصعبة للقيام بذلك. أعترف ليست هذه هي الطريقة المثلى للقيام بذلك. أنا متأكد من أنك تعرف بالفعل هذا. قد ترغب في تفرط في طريقة WindProc من التحكم واستخدام SendMsg Win32 المعهد. هذه هي الطريقة التي اعتدت الامور للعمل مرة أخرى في اليوم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top