Hi!
Mit „klassischem“ Drag&Drop wirst Du vermutlich nicht so recht weiterkommen, aber ich hab’s eben probiert - wenn Du das selbst machst, ist es nicht schwer.
Im MouseDown-Event bestimmst Du Dir das ListViewItem, auf das geklickt wurde (per listView1.GetItemAt()).
Das merkst Du Dir.
Im MouseMove-Event holst Du Dir auch wieder das Item, über dem die Maus gerade ist. Wenn es das selbe ist wie das gemerkte, dann vielleicht geschickterweise den Cursor auf Cursors.No setzen, damit man weiss, dass es keinen Sinn macht, das Item auf sich selbst fallen zu lassen. Anderenfalls den Cursor auf irgendwas anderes setzen, damit man sieht, dass etwas passiert.
Im MouseUp-Event schließlich wieder das Item bestimmen, auf dem fallengelassen wurde und per listView1.Items.Remove() das gemerkte entfernen und z.B. per listView1.Items.Insert(…) einfügen. Anschließend den Merker des gezogenen Items wieder zurücksetzen.
Wenn Du’s noch komfortabler willst (mit Anzeige, ob vor oder nach einem Item einsortiert wird, dann wird’s etwas aufwändiger…
Gruß,
Martin
P.S.: Beschreibung extra in Prosa, weil ich’s in C# schnell probiert hab und Du nach VB.NET gefragt hast…