ListView HitTest возвращает неправильное значение после отображения всплывающего меню - PullRequest
0 голосов
/ 28 января 2019

У меня есть метод ListView с именем listView_MouseUp, который выбирает элемент в моем ListView, если HitTest что-то возвращает.После этого я проверяю, щелкнул ли я правой кнопкой мыши.Затем я открываю всплывающее меню для изменения выбранного элемента:

Private Sub listView_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim selectedListItem As ListItem
    Set selectedListItem = listView.HitTest(X, Y)
    If Not selectedListItem Is Nothing Then
        ' Select the item and load some text fields
        If Button = vbRightButton Then
            Me.PopupMenu popupChangeDocument
        End If
    End If
End Sub

Если я нажму (левая кнопка мыши) второй раз (на ранее выбранном элементе), координаты X и Y будут правильными (новые значения)и всплывающее меню больше не отображается.

Если я нажимаю на пустую область ListView, X и Y остаются прежними, и всплывающее меню открывается в позиции щелчков.

Почемузначения X и Y не обновляются?

1 Ответ

0 голосов
/ 29 января 2019

Эта ссылка от vb-helper должна помочь.

@ BillHileman Спасибо за ссылку.К сожалению, это не помогло с этой проблемой.Но в процессе проверки вашего ответа я обнаружил проблему:

В конце метода listView_MouseUp возникла DoEvents , которая вызвала это странное поведение.

...