كيفية الوقاية من عنصر تحكم WinForms عناصر من الاستماع إلى لوحة المفاتيح
سؤال
لوinputform معينة، أود أن تجعل من الممكن للقيام الإدخال مع لوحة المفاتيح. أنا أعرف كيفية قراءة مفاتيح من خلال KeyPressed وKeyUp، ولكن المشكلة هي أنه عندما حصلت على التحكم التركيز ويقوم المستخدم بالضغط على مفتاح Enter، وتتلقى هذه السيطرة الحدث نقرة. هل من الممكن لمنع هذا السلوك؟ أم أنه من الممكن معرفة إذا كان أطلق الحدث انقر بواسطة الماوس أو لوحة المفاتيح من قبل؟
المحلول
هل هذه المساعدة؟ من قاعدة المعارف ل Microsoft
<اقتباس فقرة>ونقل رمز باتون من button.Click () إلى button.MouseClick ()
اقتباس فقرة>نصائح أخرى
وهذا سيكون أسهل إذا كنت يمكن أن تصف الوضع والسلوك التي تريدها بالضبط ...:)
ويمكنك تعيين:
Form.KeyPreview = True
وهذا يبعث الفعاليات الرئيسية لنموذج أولا، ثم إلى التحكم. وهذا يعطي لك الفرصة لالتقاط الأحداث الرئيسية على شكل و'إلغاء' لهم:
e.Handled = True
وأيضا تأكد من عدم ضبط AcceptButton لنموذج!
ويمكنك أيضا الاستماع لأحداث لوحة المفاتيح وتصفية المفاتيح.