سؤال

لدي شرط لإخفاء contextmenustrip عندما لا يتم تعيين علامة معينة. كما لا أعتقد أننا نتمكن من التحكم صراحة في عرض / إخفاء شريط قائمة السياق، قررت مصيدة زر الماوس الأيمن، انقر فوق عنصر التحكم الذي يرتبط به contextmenustrip. إنه USERCONTROL، لذلك حاولت التعامل مع حدث MouseClick في الداخل الذي أتحقق منه إذا تم تعيين العلم وإذا كان الزر عبارة عن زر يمين. ومع ذلك، إلى دهشتي، لا يتم إطلاق الحدث عند النقر بزر الماوس الأيمن فوق الماوس، ولكن الحرائق فقط من أجل النقر الأيسر فقط.

هل هناك أي شيء خاطئ معي أم أن هناك أي حل؟

انقر بزر الماوس الأيمن هو الحصول على تم اكتشافه، عنوان السؤال والوصف الذي تم تغييره

بعد إجراء المزيد من البحث، حصلت على النظائر الناجحة لإطلاق النار، عندما تعاملت مع حدث Mouse_Down على عنصر التحكم. ومع ذلك ما زلت جاهل، كيف لمنع السياق بشكل صريح من التحميل. وبعد سؤال آخر يجري، لماذا لم يكشف MouseClick على الزر الأيمن؟


الحل الحالي

تسجيل معالج الأحداث

   userControl1.Control1.MouseDown += new MouseEventHandler(Control1_MouseDown);

 void Control1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right && flag == false)
        {
           userControl1.Control1.ContextMenuStrip = null;
        }
        else
        {
            userControl1.Control1.ContextMenuStrip = contextMenuStrip1;
        }

    }

هذا هو الحل الحالي الذي أفعله. ولكن كيف يمكنني تغييره في الحدث الافتتاحي في السياق

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

المحلول

سيفشل الحل الخاص بك على أي حال عندما يتم استدعاء قائمة السياق بمفتاح قائمة السياق (أو ما يسمى) على لوحة المفاتيح. يمكنك استعمال ال Opening الحدث لإلغاء فتح قائمة السياق.

نصائح أخرى

هناك عمل حولها.

دعونا نقول عنصر القائمة A تعيين العلم الذي يتحكم في قائمة السياق عند التحكم B.

في حدث Click for A، قمت بتعيين B.ContextMenu = لا شيء لإيقاف تشغيله، وتعيين B.ContextMenu مرة أخرى إلى عنصر التحكم في قائمة السياق لتبديله مرة أخرى.

في WinForms هناك أيضا Click الحدث - الذي يتم إطلاقه بنقرة الماوس الأيمن.

إذا كنت تستخدم WPF، يجب أن يكون لديك MouseRightButtonDown و MouseRightButtonUp الأحداث.

تحقق من الجدول على هذا صفحة MSDN القوائم التي تتحكم في رفع الأحداث النقدية. بشكل كبير، زر، خانة الاختيار، RichtextBox و Radiobutton (وغير قليل من الآخرين) لا يرفع والحدث في النقر بزر الماوس الأيمن.

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