在ListBox C#WinForms中查看多选的顺序

时间:2016-03-08 09:48:04

标签: c# winforms multi-select listboxitems

有人能告诉我如何在C#的列表框中看到所选的intems顺序? 例如,如果我在列表框中有这些元素:

第1项第2项第3项第4项第5项

我按照这个顺序选择Item4,Item2和Item5,我需要一种方法来查找如何按照上述顺序选择项目。

谢谢!

2 个答案:

答案 0 :(得分:1)

可能会获得所选项目的索引并将其添加到数组吗?

答案 1 :(得分:0)

使用List<T>扩大鲁道夫的想法:

List<int> selected = new List<int>();

您可以跟踪到目前为止选择的项目:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    // add new selection:
    foreach (int index in listBox1.SelectedIndices) 
            if (!selected.Contains(index)) selected.Add(index);
    // remove unselected items:
    for (int i = selected.Count - 1; i >= 0; i-- ) 
        if (!listBox1.SelectedIndices.Contains(selected[i])) selected.Remove(i);
}

要测试你可以写:

for (int i = 0; i < selected.Count; i++) 
   Console.WriteLine("Item # " selected[i] + ": " + listBox1.Items[selected[i]]);

请注意,当您使用扩展的多选项选项时,您将获得通常的,略微奇怪的Windows选择顺序..