How do I ensure an item is selected in a ListView?

I have a listview and I want to ensure that an item is always selected.  If a user clicks in a blank area of the listview, I want the current selection to remain selected.  I have some code below that does the job, but it seems overly complicated.  Is there an easier way to do this?
Private p_lvwItem As ListViewItem = Nothing
 
Private Sub lvwList_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgs) Handles lvwList.ItemSelectionChanged 
  If Not e.IsSelected Then 
    p_lvwItem = e.Item 
  End If 
End Sub 
 
Private Sub lvwList_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lvwList.MouseDown 
  lvwList.BeginUpdate() 
End Sub 
 
Private Sub lvwList_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lvwList.MouseUp 
  If lvwList.SelectedItems.Count = 0 Then 
    lvwList.Items.Item(p_lvwItem.Index).Selected = True 
  End If 
  lvwList.EndUpdate() 
End Sub

Open in new window

appsysdcoAsked:
Who is Participating?
 
Krys_KCommented:
HI There
I'm not sure there is a better way to do this other than what you have. Given your criteriea that if any of the ListView object itself is clicked and is blank.
If your criteria was a little different, such as If the Listview has lost the focus and nothing is selected then select an item; you could use the LostFocus Event to do the same thing instead.
Regards
Krystian
0
 
appsysdcoAuthor Commented:
Thanks, I wasn't sure if there was going to be an easier way or not.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.