Определите, был ли элемент или ничего нажат в ListView
У меня возникла проблема с выбором ListView на VB6 Classic.
У меня есть listview с несколькими элементами, но когда я выбираю что-то из строк текста, он автоматически переходит к элементу default / first.
Что я ищу, так это найти способ "выбрать ничего", когда пользователь нажимает на любое другое место, кроме текста списка 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 ответ:
Пара идей приходят на ум. Вам нужно будет решить, что лучше для вашей ситуации. Первая идея состоит в том, чтобы ответить на событие
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