ListView.ItemSelectionChanged Event, Occurs when the selection state of an item changes.
Clear selection in selectionIndexChanged event.
bool
clearSelection =
false
;
ListViewItem lastSelectedItem =
null
;
private
void
listViewDevice_SelectedIndexChanged(
object
sender, EventArgs e)
{
try
{
if
(listViewDevice.SelectedItems.Count > 0 &&
null
!= listViewDevice.FocusedItem)
{
selectedItem = listViewDevice.SelectedItems[0];
//This block of code prevents selection index changed fires twices on the same item.
if
(clearSelection && lastSelectedItem !=
null
&& lastSelectedItem == selectedItem)
{
listViewDevice.SelectedItems[0].Focused =
false
;
listViewDevice.SelectedItems[0].Selected =
false
;
clearSelection =
false
; lastSelectedItem =
null
;
return
;
}
if
(SystemColors.GrayText == selectedItem.ForeColor)
{
MessageBox.Show(
"Selection cleared."
,
"Warning"
, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
listViewDevice.SelectedItems[0].Focused =
false
; //Clear selection called selectionIndexChanged twice
listViewDevice.SelectedItems[0].Selected =
false
;
clearSelection =
true
; lastSelectedItem = selectedItem;
return
;
}
}
catch
(Exception ex) { }
}