การใช้รายการควบคุมรายการ:
1) คุณสมบัติการควบคุม
รายการ
SelectedItems
Selectiomodes
2) การเชื่อมโยงข้อมูล
แหล่งข้อมูล
displaymember
การประเมินค่า
3) ตัวอย่าง
ต่อไปนี้จะเริ่มอธิบายการใช้ตัวควบคุมกล่องรายการด้านบนทีละคน
ก่อนอื่นมาพูดถึงคุณสมบัติของการควบคุม
(1) รายการ: ใช้คุณสมบัตินี้เพื่อรับคุณสมบัติของรายการควบคุมรายการ คุณสมบัตินี้สามารถใช้เพื่อกำหนดรายการที่เลือกในการควบคุมรายการ เมื่อเพิ่มรายการคุณสามารถเพิ่มได้อย่างสมดุลระหว่างการออกแบบหรือแบบไดนามิกในรหัส หากคุณไม่ต้องการแสดงรายการที่เพิ่มในเวลาออกแบบคุณสามารถเพิ่ม this.listbox1.items.clear () ในรหัสของคุณ เฉพาะตัวเลือกที่เพิ่มในรหัสของคุณจะปรากฏขึ้น
(2) SelectedItems: รับคอลเลกชันที่มีรายการที่เลือกในปัจจุบันในกล่องรายการ
(3) Selectiomodes: รับหรือตั้งค่าวิธีการที่ใช้ในการเลือกรายการใน ListBox มีสี่ค่าให้เลือก ค่าเริ่มต้นคือ SelectionMode.one และสามารถเลือกได้เพียงอันเดียวเท่านั้น ค่าคุณสมบัติไม่สามารถเลือกได้ เมื่อกด Property Multiextended ให้คลิกที่เมาส์ในขณะที่คลิกปุ่ม Shift หรือปุ่ม Shift และปุ่มลูกศรใดปุ่มหนึ่ง (ขึ้น, ลง, ซ้ายและขวา) ในเวลาเดียวกันเนื้อหาที่เลือกจะถูกขยายจากรายการที่เลือกก่อนหน้านี้ไปยังรายการปัจจุบัน การกดปุ่ม CTRL ในขณะที่คลิกเมาส์จะเลือกหรือถอดถอนรายการในรายการ เมื่อคุณสมบัติถูกตั้งค่าเป็น MultiSimple คลิกหรือกดแถบ Space จะเลือกหรือยกเลิกการเลือกรายการในรายการ
ถัดไปพูดคุยเกี่ยวกับการเชื่อมโยงข้อมูล โดยปกติแล้วข้อมูลจะเป็นตัวแปรดังนั้นจึงจำเป็นต้องมีการเชื่อมโยงข้อมูล มีการเชื่อมข้อมูลหลายประเภท หนึ่งคือการผูกชุดข้อมูลหรือชุดข้อมูลที่ได้จากฐานข้อมูล อีกอย่างคือการปรับแต่งคลาสเพื่อผูกข้อมูลในคลาสที่กำหนดเอง มีความแตกต่างเล็กน้อยระหว่างการเชื่อมโยงข้อมูลใน 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);
-
จนถึงตอนนี้มีปัญหาอีกอย่างหนึ่งที่เมื่อเลือกรายการสองสามรายการแรกในกล่องไม่มีปัญหาในการย้ายด้านขวา แต่เมื่อเลือกรายการสองสามรายการถัดไปรายการถัดไปจะถูกย้ายไปที่กล่องขวาและรายการสองสามรายการแรกจะถูกย้ายออกจากกล่องซ้าย เหตุผลสำหรับปัญหานี้คือเราจะ
SelectedItems และรายการสับสน นี่เป็นความผิดพลาดที่ผู้เริ่มต้นจำนวนมากมีแนวโน้มที่จะทำ รหัส: