تقوم قائمة السياق بإعادة تعيين الفهرس المحدد الخاص بـ ComboBox
-
09-06-2019 - |
سؤال
لدي قائمة سياق يتم عرضها بعد قيام المستخدم بالنقر بزر الماوس الأيمن على ComboBox.عندما يقوم المستخدم بتحديد عنصر في قائمة السياق، يتم عرض النموذج باستخدام ShowDialog()
طريقة.
If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
LoadComboBoxes()
End If
عندما يتم إغلاق هذا النموذج، أقوم بتحديث كافة البيانات الموجودة في ComboBoxes في النموذج الأصلي.ومع ذلك، عندما يحدث هذا، يتم إعادة تعيين ComboBox الذي فتح قائمة contextMenu ليحتوي على فهرس محدد بقيمة -1 لكن الفهارس المحددة الأخرى لصناديق التحرير والسرد الأخرى تظل كما هي.
كيف أمنع إعادة تعيين ComboBox الذي فتح قائمة السياق؟
المحلول
تتمثل إحدى طرق التعامل مع ذلك في استخدام الحدث المنبثق لقائمة السياق للحصول على الفهرس المحدد لمربع التحرير والسرد الذي يقوم بتشغيل القائمة.عند إغلاق نموذج الحوار، قم بإعادة تعيين الفهرس المحدد.
نصائح أخرى
اكتشفتها.
لقد قمت بإنشاء طريقة اجتازت contextMenu.SourceControl() الخاصية حسب المرجع حتى أتمكن من التعامل مع عنصر التحكم الذي يسمى contextMenu.في بداية الطريقة حصلت على القيمة المحددة من ComboBox وإعادة تحميل البيانات في ComboBoxes.ثم قمت بتعيين القيمة المحددة إلى القيمة التي حصلت عليها في بداية الطريقة.
شكرًا لك DaveK لتوجيهي في الاتجاه الصحيح.