Я итальянец, поэтому прошу прощения за мой английский.Я работаю с VS2008 PRO (VB.NET), Net Framework 3.5 SP1, на Win7 или Win10.У меня следующая проблема:
Я хочу перетаскивать элементы между двумя различными списками.В источнике нет групп, у цели есть группы.
При загрузке формы я заполняю целевой список просмотра группами, но без элементов.Чтобы увидеть группы, я добавляю в каждую группу «фиктивный элемент» с Text = String.Empty.Этот способ показывает мне группы и не показывает элементы (см. Рисунок)

Также я обнаружил, что каждый первый элемент в группе имеет индекс= 0 второй 1 и т. Д., Так что индекс не уникален.
Когда я перетаскиваю элемент из источника в цель, мне нужно определить целевую группу;пользователь может отпустить указатель мыши над областью между существующими группами и не всегда над существующим элементом);в другом вопросе я нашел следующий код:
' Retrieve the client coordinates of the mouse pointer.
Dim targetPoint As Point = TargetList.PointToClient(New Point(e.X, e.Y))
' Retrieve the index of the item closest to the mouse pointer.
Dim targetIndex As Integer = TargetList.InsertionMark.NearestIndex(targetPoint)
С кодом выше я получаю ближайший индекс к точке, в которой пользователь отпустил мышь, но я всегда получаю элемент с индексом = 0 (без информации огруппа);этот способ мне не подходит
Dim htInfo As ListViewHitTestInfo = TargetList.HitTest(TargetList.PointToClient(New Point(e.X, e.Y)))
Dim lviSibling As ListViewItem = htInfo.Item
Приведенный выше код работает, только если мышь отпущена над существующим элементом;если нет (и у меня есть это условие, когда Item существует, но не отображается), htInfo.Item равен Nothing, и я не могу получить связанную группу.
Возможное решение - показать фиктивный элемент с текстом "[Dropздесь новый элемент] ", чтобы заставить пользователя отпустить мышь над существующим элементом, но я хотел бы найти лучший способ (если есть)
Любое предложение будет высоко оценено.Спасибо Стефано