C#: bizzare multiple event firing for listview on SelectedIndexChanged -
if put listview component windows form , add bellow code it's selectedindexchanged event: messagebox.show("fired!"); foreach (int selectedindex in listview1.selectedindices) { listview1.items[selectedindex].selected = false; listview1.items[selectedindex].focused = false; } the message box shown 4 times! why that? note : use loop clear selected items in listview you should not change selection in selectedindexchanged event. more generally, you should not change property inside of notification property has been changed . if need change property in response notification, handle corresponding *changing event. rather being notification has changed (which comes after fact), notification change (which comes before fact). in selectedindexchanging event, have couple of different options alter course of events: you can set e.cancel property true , says. cancel event , prevent selected index changing. you can use e.newselectedindex property al