0

我有以下代码来选择 ListBox 中的下一个列表项或第一个列表项:

if (ListBox.SelectedIndex == lst.Count - 1)
    ListBox.SelectedIndex = 0;
else
    this.ListBox.SelectedIndex = ListBox.SelectedIndex + 1;

它抛出异常:

Collection was modified; enumeration operation may not execute

修改集合的原因是我需要修改其中一个列表项的内容。我找到需要修改的列表项,在该索引处将其删除,然后在同一索引处重新添加它。

有没有办法修改列表框的内容,仍然可以设置SelectedIndex?

4

2 回答 2

1

这可能取决于执行顺序以及读取和写入属性的时间。

尝试:

var idx = ListBox.SelectedIndex;

if (idx == lst.Count - 1)
    ListBox.SelectedIndex = 0;
else
    this.ListBox.SelectedIndex = idx + 1;
于 2013-01-11T11:23:21.567 回答
0

试试下面的:

var index=ListBox.SelectedIndex;
if (index == lst.Count - 1)
    ListBox.SelectedIndex = 0;
else
    this.ListBox.SelectedIndex = index + 1;
于 2013-01-11T11:24:42.310 回答