ListBox элемент перетащите элементы, чтобы двигаться в разных местах в этом списке
Я пытаюсь понять,как использовать событие перетаскивания для переключения порядка элементов списка. каждый раз, когда я пытаюсь использовать свой код, он продолжает давать мне круг с линией через него. что бы я ни делал, я не могу заставить их двигаться.
Private Sub ListBox1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown Dim index As Integer = ListBox1.IndexFromPoint(e.X, e.Y) Dim s As String = ListBox1.Items(index).ToString() Dim dde1 As DragDropEffects = DoDragDrop(s, DragDropEffects.Move) If dde1 = DragDropEffects.All Then ListBox1.Items.RemoveAt(ListBox1.IndexFromPoint(e.X, e.Y)) End If End Sub Private Sub ListBox1_DragOver(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter e.Effect = DragDropEffects.All End Sub Private Sub ListBox1_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop If e.Data.GetDataPresent(DataFormats.Text) Then e.Effect = DragDropEffects.Move ListBox1.SelectedIndex = ListBox1.IndexFromPoint(ListBox1.PointToClient(New Point(e.X, e.Y))) End If Dim str As String = DirectCast(e.Data.GetData(DataFormats.StringFormat), String) ListBox1.Items.Insert(ListBox1.SelectedIndex, str) End Sub
Что я уже пробовал:
изменено. переместить в. копировать, но я все равно получаю тот же круг с линией через него.
Michael_Davies
Вы установили свойство AllowDrop в True в списке?
Member 11856456
да, было высказано предположение, что мой код ошибочен, потому что теперь он позволяет мне перетаскивать его, но ничего не происходит. Я хочу переставить список так, чтобы у меня были определенные элементы в новой позиции / индексе
Member 11856456
Я сделал это дальше, проблема в том, что после того, как его место в соответствующем индексе будет скопировано, он копирует тот же текст, делая дубликат, но удаляет другой текст. Я перепечатываю новый код.