نحن نعلم أنه يوجد في بعض البرامج بعض الاختصارات (مثل: مفتاح Shift للتصغير، ومفتاح ESC للخروج، وCtrl+S للحفظ، وAlt+x للخروج، وما إلى ذلك). كانت هناك بعض المقدمات في الماضي والتي يمكن إجراؤها باستخدام Win32 API، ولكنها مرهقة للغاية، في الواقع، لقد زودنا VB نفسه بهذه الوظيفة بالفعل.
لنقم بإنشاء نموذج جديد Form1. بالنسبة لعمليات لوحة المفاتيح، يمكننا رؤية ثلاثة أحداث: KeyPress() وKeyDown وKeyUp، وسأقدمها على التوالي أدناه:
يحدث الحدث KeyPress() عندما يقوم المستخدم بالضغط على مفتاح ANSI ثم تحريره (ANSI هو أحرف ASCII المرئية 1-127).
قواعد اللغة
وصف جزئي
الكائن هو تعبير كائن يتم "تطبيق" قيمته على كائن في القائمة.
الفهرس هو عدد صحيح يحدد بشكل فريد عنصر التحكم في صفيف التحكم (متوفر فقط لصفائف التحكم).
keyascii هو عدد صحيح يُرجع رمز مفتاح ANSI الرقمي القياسي. يقوم Keyascii بتمرير كائن حسب المرجع، مما يجعل إجراء تغييرات عليه ممكنًا.
إرسال شخصية مختلفة. يؤدي تغيير keyascii إلى 0 إلى إلغاء ضغط المفاتيح بحيث لا يتلقى الكائن أي أحرف.
يوضح
يتلقى الكائن الذي تم التركيز عليه هذا الحدث. يمكن أن يتلقى النموذج هذا الحدث فقط إذا تم تعيين خاصية KeyPreview على True. يمكن أن يشير حدث KeyPress إلى أي حرف لوحة مفاتيح قابل للطباعة، أو حرف من الأبجدية القياسية أو أحد الأحرف الخاصة القليلة مع المفتاح CTRL، والمفتاح ENTER أو BACKSPACE. يعد إجراء الحدث KeyPress() مفيدًا عند اعتراض ضغطات المفاتيح التي تم إدخالها في عنصر تحكم TextBox أو ComboBox. يمكنه اختبار صلاحية ضغطات المفاتيح أو تنسيق الأحرف على الفور عند إدخالها. سيؤدي تغيير قيمة المعلمة keyascii إلى تغيير الأحرف المعروضة.
يمكنك استخدام التعبير التالي لتحويل المعلمة keyascii إلى حرف:
يوضح
بالنسبة لكلا الحدثين، يتلقى الكائن الذي تم التركيز عليه جميع ضغطات المفاتيح. يمكن أن يحصل النموذج على التركيز فقط إذا لم يكن لديه عناصر تحكم مرئية وصالحة. على الرغم من إمكانية تطبيق حدثي KeyDown() وKeyUp() على معظم المفاتيح، إلا أنه يتم تطبيقهما بشكل شائع على: مفاتيح الأحرف الموسعة مثل مفاتيح الوظائف، ومفاتيح التنقل، ومفاتيح تعديل لوحة المفاتيح ومجموعات المفاتيح، مما يميز لوحات المفاتيح الرقمية عن الأرقام العادية Key؛ عندما تحتاج إلى الاستجابة لكل من الضغط على المفتاح وتحريره، يمكنك استخدام إجراءات حدث KeyDown وKeyUp.
لا يمكن الرجوع إلى الأحداث KeyDown وKeyUp في الحالات التالية: يحتوي النموذج على عنصر تحكم CommandButton والمفتاح ENTER عند تعيين الخاصية الافتراضية إلى True. يحتوي النموذج على عنصر تحكم CommandButton، وعندما يتم تعيين خاصية إلغاء إلى True، يستخدم المفتاح ESC ومفتاح TAB وKeyDown وKeyUp معلمتين لتفسير الأشكال الكبيرة والصغيرة لكل حرف: رمز المفتاح - يعرض المفتاح الفعلي (استبدال A وإرجاع بنفس المفتاح) ويعرض Shift حالة مفتاح Shift + المفتاح ويعيد أحد A أو a.
إذا كنت بحاجة إلى اختبار معلمة التحول، فيمكنك استخدام ثابت التحول المحدد في المعلمة. يحتوي هذا الثابت على القيم التالية:
وصف القيمة الثابتة
vbShiftMask 1 بت مفتاح HIFT
درع.
مفتاح VbCtrlMask 2 CTRL
قناع قليلا.
بتات مفتاح VbAltMask 4 ALT
درع.
يعمل هذا الثابت كقناع بت، والذي يمكن استخدامه لاختبار أي مجموعة مفاتيح.
ملاحظة: إذا تم تعيين خاصية KeyPreview إلى True، فسيتلقى النموذج هذا الحدث قبل عناصر التحكم الموجودة في النموذج. يمكنك استخدام خاصية KeyPreview لإنشاء إجراءات عامة للتعامل مع لوحة المفاتيح.
باستخدام المعرفة المذكورة أعلاه، يمكننا إنشاء برنامج مثالي باستخدام مفاتيح الاختصار، على سبيل المثال، في البرنامج نحتاج إلى استخدام Ctrl+S للحفظ، وShift للتصغير، وAlt+X، وESC للخروج:
قم أولاً بتشغيل VB وحدد ملف EXE جديد، واسحب TextBox في النموذج Form1، وقم بتعيين خاصية KeyPreview للForm1 إلى True، وانقر نقرًا مزدوجًا فوق Form1، وحدد حدث KeyPress للنموذج، وأدخل التعليمة البرمجية التالية: