I have two listviews with many items present. When the user clicks an item in ListViewA, I highlight items in ListViewB. I use the SelectedIndexChanged event of A, loop through the items in B and set some highlighting colors, ensuring visible etc. This works fine.

However... it would be nice to allow the user to MultiSelect. The problem here is the when selecting 10 items in A (holding the shift key down), the SelectedIndexChanged event fires 10 times, once for each item added into the selection. This is a real pain since my highlight sub then runs 10 times and it takes 10 times as long.

Now... I had a plan to deal with that, I detect the shift key being held down and inhibit the event until its raised. That works fine too.

But... if I have 10 items selected, and then I click one new one, so 10 are being deselected and one being selected, the SelectedIndexChanged event fires 11 times. So my situation has not improved. Any ideas how to wriggle out of this?, is there a better way?