كيفية الوقاية من عنصر تحكم WinForms عناصر من الاستماع إلى لوحة المفاتيح

StackOverflow https://stackoverflow.com/questions/313737

سؤال

لوinputform معينة، أود أن تجعل من الممكن للقيام الإدخال مع لوحة المفاتيح. أنا أعرف كيفية قراءة مفاتيح من خلال KeyPressed وKeyUp، ولكن المشكلة هي أنه عندما حصلت على التحكم التركيز ويقوم المستخدم بالضغط على مفتاح Enter، وتتلقى هذه السيطرة الحدث نقرة. هل من الممكن لمنع هذا السلوك؟ أم أنه من الممكن معرفة إذا كان أطلق الحدث انقر بواسطة الماوس أو لوحة المفاتيح من قبل؟

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

المحلول

هل هذه المساعدة؟ من قاعدة المعارف ل Microsoft

<اقتباس فقرة>   

ونقل رمز باتون من button.Click () إلى button.MouseClick ()

نصائح أخرى

وهذا سيكون أسهل إذا كنت يمكن أن تصف الوضع والسلوك التي تريدها بالضبط ...:)

ويمكنك تعيين:

Form.KeyPreview = True

وهذا يبعث الفعاليات الرئيسية لنموذج أولا، ثم إلى التحكم. وهذا يعطي لك الفرصة لالتقاط الأحداث الرئيسية على شكل و'إلغاء' لهم:

e.Handled = True

مزيد من المعلومات

وأيضا تأكد من عدم ضبط AcceptButton لنموذج!

ويمكنك أيضا الاستماع لأحداث لوحة المفاتيح وتصفية المفاتيح.

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