تقوم قائمة السياق بإعادة تعيين الفهرس المحدد الخاص بـ ComboBox

StackOverflow https://stackoverflow.com/questions/50565

سؤال

لدي قائمة سياق يتم عرضها بعد قيام المستخدم بالنقر بزر الماوس الأيمن على ComboBox.عندما يقوم المستخدم بتحديد عنصر في قائمة السياق، يتم عرض النموذج باستخدام ShowDialog() طريقة.

If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    LoadComboBoxes()
End If

عندما يتم إغلاق هذا النموذج، أقوم بتحديث كافة البيانات الموجودة في ComboBoxes في النموذج الأصلي.ومع ذلك، عندما يحدث هذا، يتم إعادة تعيين ComboBox الذي فتح قائمة contextMenu ليحتوي على فهرس محدد بقيمة -1 لكن الفهارس المحددة الأخرى لصناديق التحرير والسرد الأخرى تظل كما هي.

كيف أمنع إعادة تعيين ComboBox الذي فتح قائمة السياق؟

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

المحلول

تتمثل إحدى طرق التعامل مع ذلك في استخدام الحدث المنبثق لقائمة السياق للحصول على الفهرس المحدد لمربع التحرير والسرد الذي يقوم بتشغيل القائمة.عند إغلاق نموذج الحوار، قم بإعادة تعيين الفهرس المحدد.

نصائح أخرى

اكتشفتها.

لقد قمت بإنشاء طريقة اجتازت contextMenu.SourceControl() الخاصية حسب المرجع حتى أتمكن من التعامل مع عنصر التحكم الذي يسمى contextMenu.في بداية الطريقة حصلت على القيمة المحددة من ComboBox وإعادة تحميل البيانات في ComboBoxes.ثم قمت بتعيين القيمة المحددة إلى القيمة التي حصلت عليها في بداية الطريقة.

شكرًا لك DaveK لتوجيهي في الاتجاه الصحيح.

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