تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ما الحدث الذي يطلقه الزر Tab
#7
السلام عليكم...

العديد من المكونات تعتبر بعض المفاتيح كمفاتيح تنقل (Navigation Keys) و ليست مفاتيح إدخال (Input Keys). و بالتالي لا يتم قدح الحدث KeyDown لتلك النفاتيح. مثلاً المكون Button يعامل مفاتيح الأسهم كمفاتيح تنقل و بالتالي لا يقع الحدث KeyDown مع مفاتيح الأسهم على الـ Button.

نفس الأمر يكون مع معظم المكونات بالنسبة إلى المفتاح Tab. أي أنه يُعتبر مفتاح تنقل و ليس مفتاح إدخال.

للتعامل مع هذه الحالات لديك خياران بسيطان، و كلاهما يحتاج إلى استعمال الحدث PreviewKeyDown الذي يحدث قبل الحدث KeyDown مهما كان المفتاح المضغوط:

1. إذا كنت تريد التعامل مع ضغط المفتاح Tab مع السماح بالانتقال إلى المكون التالي (لأن المفتاح Tab يعمل بشكل افتراضي على الانتقال إلى المكون التالي) فاكتب الكود الذي تريده مباشرة في إجراء الحدث PreviewKeyDown. لا يمكنك هنا إلغاء السلوك الافتراضي للمفتاح Tab (أو أي مفتاح آخر) لأن البارامتر e الذي يحتوي على بارامترات الحدث (من النوع PreviewKeyDownEventArgs) لا يحتوي على الخاصية Handled.

2. إذا كنت تريد التعامل مع ضغط المفتاح Tab مع إلغاء عمله الافتراضي (أي منع الانتقال إلى المكون التالي):

أ. اكتب في الحدث PreviewKeyDown الكود التالي:

كود :
If e.KeyCode = Keys.Tab Then
        e.IsInputKey = True
    End If

حيث هذا الكود يجعل المكون يعتبر أن المفتاح Tab هو مفتاح إدخال، و بالتالي سيعمل على قدح الحدث KeyDown.

ب. اذهب إلى الحدث KeyDown و اكتب الكود الذي تريده.

* ستلاحظ في الحالة الثانية (أي استعمال e.IsInputKey = True و كتابة الكود في الحدث KeyDown) أن الـ Focus لا تنتقل من المكون إلى المكون الذي يليه.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}


الردود في هذا الموضوع
RE: ما الحدث الذي يطلقه الزر Tab - بواسطة ناجي إبراهيم - 10-04-14, 11:57 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Information [VB.NET] حذف كل العناصر التي تاتي بعد عنصر الذي احدده listbox mervandz 3 631 10-11-23, 07:12 PM
آخر رد: justforit
  [VB.NET] حدث النقر على الزر flawer69 3 582 23-08-23, 05:49 PM
آخر رد: أبو خالد الشكري
  كيف اقوم بقفل الملف الذي يستخدمه احد المستخدمين ابو محمد محمد محمد 8 1,152 21-04-23, 05:58 PM
آخر رد: ابو محمد محمد محمد
  اظهار مربع الاشارة علي الزر mohamedallams 4 1,295 10-08-22, 12:18 PM
آخر رد: mohamedallams
  [VB.NET] إبقاء التحديد على الصف الذي تم تحديث بياناته بعد التحديث مسلم_١ 3 1,319 19-01-22, 07:58 PM
آخر رد: مسلم_١
  انتقال إلى سطر جديد بواسطة ضغط الزر انتر Alhootti1 10 3,764 03-02-21, 01:23 PM
آخر رد: Alhootti1
Question [سؤال] اضافه رابط الى الزر 3booy201 9 9,791 30-12-20, 10:10 PM
آخر رد: asmarsou
  جعل الزر في الداتا قريد تقبل اكثر من سطر المتألق9 0 1,105 22-11-20, 04:17 PM
آخر رد: المتألق9
  تحديد نوع العمود الذي يقبل ارقام وكسور عمور2016 2 1,382 09-10-20, 09:11 PM
آخر رد: عمور2016
  كيف اعرف الصف في الداتا قريد الذي تتم عليه العملية جيولوجي مبتدئ 6 2,146 21-04-20, 02:09 AM
آخر رد: جيولوجي مبتدئ

التنقل السريع :


يقوم بقرائة الموضوع: