当前位置:  开发笔记 > 编程语言 > 正文

如何获取多选ListBox中的最后一个选定项?

如何解决《如何获取多选ListBox中的最后一个选定项?》经验,为你挑选了2个好方法。

如何获取.Net Forms多选ListBox中的最后一个选定项?显然,如果我在列表框中选择一个项目,然后选择另一个项目,则所选项目是第一个项目.

我想获得我选择/取消选择的最后一个元素.



1> Tomalak..:

我会采用这种一般方法:

聆听SelectedIndexChanged事件并SelectedIndices每次扫描整个集合.

保留所有选定索引的单独列表,附加未列在列表中的索引,删除已取消选择的索引.

单独的列表将按照用户选择的时间顺序包含索引.最后一个元素始终是最近选择的索引.

// for the sake of the example, I defined a single List
List listBox1_selection = new List();

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    TrackSelectionChange((ListBox)sender, listBox1_selection);
}

private void TrackSelectionChange(ListBox lb, List selection)
{
    ListBox.SelectedIndexCollection sic = lb.SelectedIndices;
    foreach (int index in sic)
        if (!selection.Contains(index)) selection.Add(index);

    foreach (int index in new List(selection))
        if (!sic.Contains(index)) selection.Remove(index);
}



2> flesh..:

不确定我理解这个问题,但最后选择的项目将是SelectedItems数组中的最后一个,所以这样的东西应该工作:

ListItem i = list.SelectedItems[list.SelectedItems.Length-1];

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有