我正在使用具有listView的winForms应用程序。该listView启用了多选功能,并且列表中有很多很多项(在行 View 中)。

当我选择最后一行(即项目)时,然后按住Shift键并单击第5000行,SelectedIndexChanged将触发5000次。如果发生这种情况,我将陷入一个非常讨厌的循环。不能保证最后单击的行是“SelectedItems”列表中的最后一项。如何获得实际点击的物品?

编辑:更好的说明:如何获得导致SelectedIndexChanged事件的此特定迭代的ListViewItem? ...即使我必须检查所有5000个。我需要知道我在看哪一个。 EventArgs没有索引属性,发送者是ListView,而不是ListViewItem。

有什么想法吗?

最佳答案

噢,为了爱的皮特(*感觉比石头还笨*)

我找到了答案。请注意,我正在使用SelectedIndexChanged。我应该使用另一个事件:ItemSelectionChange。

使用该事件时,我现在拥有一些事件,这些事件可以告诉我所选内容中哪些项目已更改,并且可以告诉我该项目是“选定”还是“未选定”。很美丽。

我希望这对其他正在解决此问题的人有所帮助。

09-25 19:49