استخدام التحكم في القائمة:
1) خصائص التحكم
أغراض
SelectionItems
selectiomodes
2) ربط البيانات
DataSoure
DisplayMember
Valuemenber
3) مثال
سيبدأ ما يلي في شرح استخدام التحكم في القائمة أعلاه واحدًا تلو الآخر.
أولاً ، دعنا نتحدث عن خصائص السيطرة.
(1) العناصر: استخدم هذه الخاصية للحصول على خصائص عنصر التحكم في القائمة. يمكن استخدام هذه الخاصية لتحديد العناصر المحددة في عنصر تحكم القائمة. عند إضافة عناصر ، يمكنك إما إضافتها بشكل ثابت أثناء التصميم أو ديناميكيًا في الرمز. إذا كنت لا ترغب في عرض العناصر التي تمت إضافتها في وقت التصميم ، فيمكنك إضافة this.listbox1.items.clear () في الكود الخاص بك ؛ يتم عرض الخيارات المضافة فقط في الكود الخاص بك.
(2) SelectionItems: احصل على المجموعة التي تحتوي على العناصر المحددة حاليًا في ListBox.
(3) SelectIomodes: احصل على أو تعيين الطريقة المستخدمة لتحديد العناصر في ListBox. هناك أربع قيم للاختيار ؛ الافتراضي هو SelectionMode.One ، ويمكن اختيار واحد فقط ؛ لا يمكن اختيار قيمة الخاصية لا شيء ؛ عند الضغط على النسخ المتعدد الخاصية ، انقر فوق الماوس أثناء النقر فوق مفتاح Shift أو أحد مفاتيح Shift و Arrow (لأعلى ، لأسفل ، يسار واليمين) في نفس الوقت ، سيتم توسيع المحتوى المحدد من العنصر المحدد السابق إلى العنصر الحالي. سيقوم الضغط على مفتاح CTRL أثناء النقر فوق الماوس على تحديد عنصر في القائمة أو إلغاء تحديده ؛ عندما يتم تعيين الخاصية على Multisimple ، فإن النقر فوق أو الضغط على شريط الفضاء سيختار أو إلغاء تحديد عنصر في القائمة.
بعد ذلك ، دعنا نتحدث عن ربط البيانات. عادة ما تكون البيانات متغيرة ، لذلك يلزم ربط البيانات. هناك عدة أنواع من ربط البيانات. واحد هو ربط مجموعة البيانات أو مجموعة البيانات التي تم الحصول عليها من قاعدة البيانات ؛ والآخر هو تخصيص فئة لربط البيانات في الفئة المخصصة. هناك فرق بسيط بين ربط البيانات في C# وربط البيانات في ASP.NET. بعد ربط البيانات في ASP.NET ، يجب استدعاء طريقة Databind ، لكنها ليست ضرورية في C#. يحصل DisplayMember أو تعيين الخصائص المراد عرضها.
أخيرًا ، دعنا نفعل مثالًا كما هو موضح في الشكل:
دعنا نتحدث فقط عن تنفيذ العديد من الطرق المهمة ، وبالتالي لن يتم كتابة الكود المحدد هنا. ضع الخيارات في الحدود اليسرى في الحدود اليمنى. شفرة:
نسخة الكود كما يلي:
لـ (int i = this.listbox1.selecteditems.count - 1 ؛ i> = 0 ؛ i -)
{
قائمة القائمة = (قائمة) this.listbox1.SelectedItems [i] ؛
this.listbox2.items.add (قائمة) ؛
this.listbox1.items.remove (i) ؛
}
على الرغم من أن الوظيفة أعلاه قد تم تنفيذها ، إلا أن هناك مشكلة ، أي أن العنصر الموجود على اليسار يصبح ترتيبًا عكسيًا بعد الوصول إلى اليمين. هذا هو الرمز الذي نحتاجه لكتابة الإضافة والانتقال بشكل منفصل ، الرمز:
نسخة الكود كما يلي:
لـ (int i = 0 ؛ i <this.listbox1.SelectedItems.Count ؛ i ++)
{
قائمة القائمة = (قائمة) this.listbox1.SelectedItems [i] ؛
this.listbox2.items.add (قائمة) ؛
}
لـ (int i = this.listbox1.SelectedItems.Count-1 ؛ i> = 0 ؛ i--)
{
this.listbox1.items.remove (i) ؛
}
حتى الآن ، هناك مشكلة أخرى أنه عند اختيار العناصر القليلة الأولى في المربع ، لا توجد مشكلة في نقل اليمين ، ولكن عند اختيار العناصر القليلة التالية ، يتم نقل العناصر القليلة التالية إلى المربع الأيمن ، ويتم نقل العناصر القليلة الأولى من المربع الأيسر. سبب هذه المشكلة هو أننا سنفعل
المختارين والمواد مرتبكة. هذا خطأ يكون العديد من المبتدئين عرضة. شفرة: