منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف يتم تفعيل اختصار من لوحة المفاتيح للقائمة Menu
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
قمت بإضافة Menu للنافذة وأضفت لها صورة واختصارات من لوحة المفاتيح كما ستشاهدون بالمرفق
ولكن عند النقر على هذا الاختصار من لوحة المفاتيح لا يحدث أي شيء ولا يتم تنفيذ الأمر الخاص بالقائمة
مثلاً : القائمة Exit لها اختصار Ctrl+E مهمتها إغلاق النافذة ولكن عند النقر على هذين المفتاحين من لوحة المفاتيح لا يحدث شيء

بحثت في النت فوجدت أنه يجب أن أعرف الاختصارات في النافذة وبالفعل قمت بذلك وأضفت هذا الكود :
PHP كود :
<Window.InputBindings>
        <
KeyBinding x:Name="ExitKeyBinding" Modifiers="Ctrl" Key="E"  />
        <
KeyBinding x:Name="MsgKeyBinding" Modifiers="Ctrl" Key="M"  />
 </
Window.InputBindings
ولكن أيضاً لم أصل لنتيجة !!..
الملف بالمرفقات وأتمنى المساعدة وتوضيح هذه الجزئية
وشكر الله جهودكم جميعاً
^

الـ Input Binding لابد ان يستعمل مع الRouted Command :
إقتباس :InputBinding

Represents a binding between an InputGesture and a command. The command is potentially a RoutedCommand.


لذلك الشغلة فيها دوخة شوي للي ماتعود على استخدام الCommand في WPF

المهم ـانا عدلت لك المشروع وهو في المرفقات ويعمل بشكل ممتاز




السلام عليكم ورحمة الله وبركاته
ألف شكر لك أستاذنا الحبيب الغالي على التعديل ، وبعد :
بالفعل دوخة
يعني كل قائمة تحتاج إلى ثلاثة أسطر برمجية موزعة في البرنامج ، يعني لو كان في البرنامج 20 قائمة فسنحتاج لـ 60 سطراً
!!!!!
في الفيجوال بيسك سابقاً كانت مسألة الاختصارات آلية
يعني بمجرد أن تختار الاختصار يتم تنفيذه آلياً بالنقر على لوحة المفاتيح دون أي كودٍ آخر
لا أعرف ما سبب تعقيدها هنا
؟!؟!؟

أيضاً هنالك ملاحظة على التعديل :
البرنامج لم يعد يسمح لك إلا بالنقر على اختصار واحد فقط
يعني : لو نقرت Ctrl+M سيخرج لي الأمر المرافق للقائمة MsgBox ولكن لو قمت بالنقر مرة أخرى Ctrl+M لن يخرج شيء
وحتى لو قمت بالنقر على اختصار آخر Ctrl+E لن يستجيب
أيضاً لو نقرت بالماوس على القائمة المسماة MsgBox وخرجت لك الرسالة وقمت بإغلاق الرسالة
الآن جرب أن تنقر الاختصار من لوحة المفاتيح كذلك لن يستجيب لك
لا حظت أنه لا يستجيب حتى تقوم بعمل شيء آخر مثل تصغير النافذة أو ما شابه
فما الحل جزاك الله خيراً
مع ملاحظة أن هذه المشكلة موجودة على نظام ويندوز سفن وغير موجودة على نظام XP
؟!؟!؟