避免列表视图选定索引更改触发两次

Ale*_*lex 5 vb.net listview winforms selectionchanged

这是一个非常简单的问题,当列表视图的选定索引更改时,该事件会触发两次,一次用于取消选择,第二次用于选择下一个项目。

我需要在不同时间选择或取消选择时使用该事件,但是当取消选择只是稍后重新选择时,它会使我的一半用户界面从启用状态闪烁到关闭状态,然后再次打开,它还会导致运行相当多的代码,因此我只需要一种方法来避免取消选择触发,如果单击的是另一个项目而不是空白(用于取消选择)

Dave R 说要在这里使用 100ms 计时器:我是否在 ListView 选择事件处理中遗漏了一些东西 ,这听起来像是可以工作,但看起来很不整洁,或者通常是一种不好的方法。

我唯一的其他想法是使用点击事件,然后在该位置找到该项目?但我不想惹麻烦

提前致谢!

-编辑-

我只是认为单击事件会首先触发,因此我可以设置一个标志,如果单击事件发生在某个项目上,则可以跳过选择索引更改的代码,然后在使用该标志后重置该标志,从而跳过取消选择?我现在会看一下,但再次感觉这不是一种非常有效或简单的方法来完成听起来很简单的事情?

stu*_*rtd 4

请改用ItemSelectionChanged事件 - ListViewItemSelectionChangedEventArgs可以告诉您哪个项目导致它触发,以及它是否被选中。