Определите, был ли элемент или ничего нажат в ListView


У меня возникла проблема с выбором ListView на VB6 Classic.

У меня есть listview с несколькими элементами, но когда я выбираю что-то из строк текста, он автоматически переходит к элементу default / first.

элемент управления ListView

Что я ищу, так это найти способ "выбрать ничего", когда пользователь нажимает на любое другое место, кроме текста списка listview.

Это код listview:

Private Sub lsvArticle_Click()
   Dim mArticleNumber As Integer, mArticleIndex As Integer
   Dim Splitted() As String

   Splitted = Split(lsvArticle.SelectedItem.Text, ":")
   mArticleNumber = CInt(Trim(Splitted(0)))
   mArticleIndex = ArticleNb2ListIdx(mArticleNumber - 1)
   mNewValue = mArticleIndex
   txtValueNew.Text = A_ArticlesDef(mNewValue).W_Art_Numb & " : " & A_ArticlesDef(mNewValue).W_Art_Name
End Sub
1 2

1 ответ:

Пара идей приходят на ум. Вам нужно будет решить, что лучше для вашей ситуации. Первая идея состоит в том, чтобы ответить на событие ItemClick. Это событие запускается только при нажатии на элемент.

Private Sub lsvArticle_ItemClick(ByVal Item As MSComctlLib.ListItem)
   txtValueNew.Text = Item.Text
End Sub
Вторая идея заключается в том, чтобы реагировать на событие MouseUp в сочетании с выполнением HitTest. Если HitTest ничего, то вы нажали в пустой области.
Private Sub lsvArticle_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Not lsvArticle.HitTest(x, y) Is Nothing Then
      txtValueNew.Text = lsvArticle.SelectedItem.Text
   End If
End Sub