I think, this behavior is by design. That is, when you click an item in
listview, if thre is a previously selected one, that one gets deselected
first, then the clicked one gets selected. This behavior puzzled me when I
used listview first time in .NET. In old VB5/6, there is an event ItemClick,
which is not available in .NET listview anymore.
So, when I want to get a selected item in listview's SelectedIncdexChanged
event handler, I do this:
private void MyListView_SelectedIndexChanged(object sender.....)
{
if (MyListView.SelectedItems.Count==0) return;
//Then do whatever here.
}