NapsTer
Professional
في هذا الموضوع سنتحدث عن كيفية جعل الفورم والأدوات تستجيب لضغطات الكيبورد.
شرح موجز:
يتم التقاط ضغطات الكيبورد من الفورم والأدوات عن طريق الحدث KeyDown يتقبل الإجراء المسؤول عن الحدث KeyDown وسيطة من النوع KeyEventArgs وهي اختصار لكلمة Key Event Arguments, بحيث يحتوي هذا النوع (فئة) على خاصية تسمى KeyValue والتي تحمل المعلومات الكافية حول الزر الذي تم ضغطه, عندها يمكنك مقارنة هذه القيمة بالقيمة التي ترغب أن ستجيب لها الحدث.
يوجد ترقيم في الدوت وهو Keys Enumeration يحتوي على قيم ثابتة تمثل كل قيمة مفتاح من مفاتيح الكيبورد, والتي يمكن استخدامها للتعامل مع ضغطات الكيبورد.
ملاحظات:
الفورم لاستتجيب لأحداث الكيبورد إلا ذا كانت الخاصية KeyPreview الخاصة به قيمتها True.
الحدث KeyDown لا تستجيب للأزرار Shift و Control و Alt لذلك يجب القيام باستخدام المعامل AND مع الخاصية ModifierKeys للأداة أو الفورم.
مثال عملي:
المثال التالي يوضح خطوة بخطوة كيفية جعل البرنامج يلتقط المفتاح الذي تم الضغط عليه على Form1. و تحديد ما إذا كان المفتاح الذي تم الضغط عليه مفتاح وظيفي بمقارنة قيمة المفتاح مع القيمة الموجودة في فئة تعداد المفاتيح. عند الضغط على مفتاح وظيفي, يتم تنفيذ الإجراء المحدد عند ضغط المفتاح المطلوب.
قم بتشغيل Microsoft Visual Studio 2008 أو Microsoft Visual Studio 2005.
من القائمة File أشر إلى New ومن ثم انقر فوق Project.
ضمن "Project types" ، انقر فوق مشاريع Visual Basic.
ضمن Templates , انقر فوق Windows Application.
انقر فوق OK.
بشكل افتراضي، يتم إنشاء Form1.
قم بإضافة أداة تحكم زر وكذلك مربع نص إلى Form1.
قم بإضافة الكود التالي إلى الحدث KeyDown لكل من الزر وداة مربع النص وكذلك الفورم بعد تعيين الخاصية KeyPreview إلى True.
والسلام عليكم ورحمة الله وبركاته .. ~
شرح موجز:
يتم التقاط ضغطات الكيبورد من الفورم والأدوات عن طريق الحدث KeyDown يتقبل الإجراء المسؤول عن الحدث KeyDown وسيطة من النوع KeyEventArgs وهي اختصار لكلمة Key Event Arguments, بحيث يحتوي هذا النوع (فئة) على خاصية تسمى KeyValue والتي تحمل المعلومات الكافية حول الزر الذي تم ضغطه, عندها يمكنك مقارنة هذه القيمة بالقيمة التي ترغب أن ستجيب لها الحدث.
يوجد ترقيم في الدوت وهو Keys Enumeration يحتوي على قيم ثابتة تمثل كل قيمة مفتاح من مفاتيح الكيبورد, والتي يمكن استخدامها للتعامل مع ضغطات الكيبورد.
ملاحظات:
الفورم لاستتجيب لأحداث الكيبورد إلا ذا كانت الخاصية KeyPreview الخاصة به قيمتها True.
الحدث KeyDown لا تستجيب للأزرار Shift و Control و Alt لذلك يجب القيام باستخدام المعامل AND مع الخاصية ModifierKeys للأداة أو الفورم.
مثال عملي:
المثال التالي يوضح خطوة بخطوة كيفية جعل البرنامج يلتقط المفتاح الذي تم الضغط عليه على Form1. و تحديد ما إذا كان المفتاح الذي تم الضغط عليه مفتاح وظيفي بمقارنة قيمة المفتاح مع القيمة الموجودة في فئة تعداد المفاتيح. عند الضغط على مفتاح وظيفي, يتم تنفيذ الإجراء المحدد عند ضغط المفتاح المطلوب.
قم بتشغيل Microsoft Visual Studio 2008 أو Microsoft Visual Studio 2005.
من القائمة File أشر إلى New ومن ثم انقر فوق Project.
ضمن "Project types" ، انقر فوق مشاريع Visual Basic.
ضمن Templates , انقر فوق Windows Application.
انقر فوق OK.
بشكل افتراضي، يتم إنشاء Form1.
قم بإضافة أداة تحكم زر وكذلك مربع نص إلى Form1.
قم بإضافة الكود التالي إلى الحدث KeyDown لكل من الزر وداة مربع النص وكذلك الفورم بعد تعيين الخاصية KeyPreview إلى True.
والآن أضف الدالة لتالية والتي سيتم استدعائها من الحدث KeyDown من خلالها يتم عرض الزر الذي تم ضغطه.
If e.KeyValue = Keys.F1 Or Keys.F2 Or Keys.F3 Or Keys.F4 Or Keys.F5 Or Keys.F6 Or Keys.F7 Or Keys.F8 Or Keys.F9 Or Keys.F10 Or Keys.F11 Or Keys.F12 Then FuncKeysModule(e.KeyValue) e.Handled = True End If
للتحقق من ضغط أحد Modifier Keys مثل Alt أو Ctrl او Shift أو معاً:Public Sub FuncKeysModule(ByVal value As Keys, ByVal KeyControl As Control) 'Check what function key is in a pressed state, and then perform the corresponding action. Select Case value Case Keys.F1 'Add the code for the function key F1 here. MessageBox.Show(KeyControl.Name & " F1 pressed") Case Keys.F2 'Add the code for the function key F2 here. MessageBox.Show("F2 pressed") Case Keys.F3 'Add the code for the function key F3 here. MessageBox.Show("F3 pressed") Case Keys.F4 'Add the code for the function key F4 here. MessageBox.Show("F4 pressed") Case Keys.F5 'Add the code for the function key F5 here. MessageBox.Show("F5 pressed") Case Keys.F6 'Add the code for the function key F6 here. MessageBox.Show("F6 pressed") Case Keys.F7 'Add the code for the function key F7 here. MessageBox.Show("F7 pressed") Case Keys.F8 'Add the code for the function key F8 here. MessageBox.Show("F8 pressed") Case Keys.F9 'Add the code for the function key F9 here. MessageBox.Show("F9 pressed") Case Keys.F10 'Add the code for the function key F10 here. MessageBox.Show("F10 pressed") Case Keys.F11 'Add the code for the function key F11 here. MessageBox.Show("F11 pressed") Case Keys.F12 'Add the code for the key F12 here MessageBox.Show("F12 pressed") End Select End Sub
If e.KeyCode = Keys.C AndAlso e.Modifiers = (Keys.Control Or Keys.Shift) Then MsgBox("Alt+Shift+c") ElseIf e.KeyCode = Keys.V AndAlso e.Modifiers = Keys.Control Then MsgBox("Ctrl+v") End If
والسلام عليكم ورحمة الله وبركاته .. ~