นี่คือรหัสที่ฉันมีสำหรับการย้ายรายการลงในที่เดียวในรายการ:
if (this.folderImages.SelectedIndex > -1 && this.folderImages.SelectedIndex < this.folderImages.Items.Count - 1)
{
string imageName = this.folderImages.SelectedItem as string;
int index = this.folderImages.SelectedIndex;
this.folderImages.Items.RemoveAt(index);
this.folderImages.Items.Insert(index + 1, imageName);
this.folderImages.SelectedIndex = index + 1;
}
และนี่เป็นการย้ายที่เดียว:
if (this.folderImages.SelectedIndex > 0)
{
string imageName = this.folderImages.SelectedItem as string;
int index = this.folderImages.SelectedIndex;
this.folderImages.Items.RemoveAt(index);
this.folderImages.Items.Insert(index - 1, imageName);
this.folderImages.SelectedIndex = index - 1;
}
folderImages
เป็นListBox
ของหลักสูตรดังนั้นรายการจึงเป็น a ListBox.ObjectCollection
ไม่ใช่ไม่ใช่List<T>
แต่สืบทอดมาจากรายการIList
ดังนั้นจึงควรมีพฤติกรรมเหมือนกัน สิ่งนี้ช่วยได้ไหม?
แน่นอนว่ารายการเก่าจะใช้ได้ก็ต่อเมื่อรายการที่เลือกไม่ใช่รายการสุดท้ายในรายการและรายการสุดท้ายหากรายการที่เลือกไม่ใช่รายการแรก