Entwickler-Ecke
WinForms - Elemente einer ListView-Control mit der Maus verschieben
pimpl - Do 06.09.12 15:15
Titel: Elemente einer ListView-Control mit der Maus verschieben
Guten Tag!
Ich habe eine ListView bei welcher ich die in ihr enthaltenen Elemente entsprechend der Mausbewegung verschieben möchte, wenn die linke Maustaste gehalten wird.
(genauso, wie es beim Windows-Explorer möglich ist). Ich habe jedoch keine Ahnung, wie ich das anstellen soll!
Ich habe daran gedacht die Mausposition in ein Point-Objekt abzuspeichern, wenn ein ListView-Element ausgewählt ist und die linke Maustaste gedrückt ist.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| private Point mausPosition; private void Form1_MouseDown(object sender, MouseEventArgs e) { mausPosition = new Point(-e.X, -e.Y); } |
Nun weiß ich aber nicht weiter und bin für Anregungen sehr dankbar!
Ralf Jansen - Do 06.09.12 17:55
| Zitat: |
| Ich habe daran gedacht die Mausposition in ein Point-Objekt abzuspeichern, |
Warum?
Um eine Drag&Drop Operation zu starten solltest du dir dafür vorgesehen Events verdrahten (fangen alle mit Drag... an) . Wie genau und welche hängt davon ab was Start und Ziel der Drag&Drop Operation sein soll. Also von außerhalb in die Anwendung, von der Anwendung nach außerhalb, innerhalb der Anwendung zwischen Controls, innerhalb eines Controls?
pimpl - Fr 07.09.12 14:15
Das Ziel ist es die Elemente einer ListView innerhalb dieser zu verschieben - also letzlich die Indices der ListView-Elemente in Abhängigkeit der Mausposition zu verändern.
Wird ein Element innerhal der ListView also ganz nach oben gezogen, soll es den Index 0 erhalten, usw.
Habe mal im Internet nach anregungen gesucht, jedoch nichts für mich brauchbares gefunden..
pimpl - Mo 10.09.12 11:50
Das ist eigentlich genau das, wonach ich suche, jedoch kann ich die beschriebenen Schritte nicht ausführen!
beispielsweise kennt mein VS2010 folgende Befehle nicht:
C#-Quelltext
1: 2: 3:
| base.DoDragDrop(GetDataForDragDrop(), DragDropEffects.Move);
base.OnItemDrag(e); |
u.s.w.
Ich kann die Projektdatei auch nicht öffnen, ohne diese zu konvertieren. Nach der Konvertierung läuft jedoch garnichts.
Gibt es das Projekt auch für die neueren Versionen von VS? Oder wie kann ich das Beispiel nachvollziehen bzw. anwenden?
Moderiert von
Th69: Quote- durch C#-Tags ersetzt
pimpl - Mi 12.09.12 12:58
Ich habe es jetzt komplett anders gelöst und es funktioniert.
Dennoch, vielen Dank für die Anregungen!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!