Drag Drop in einer Picbox

Eva

Mitglied
Hallo,

ich möchte gerne in einer Picbox gezeichnete Punkte mit der Maus verschieben können. Das Problem ist jetzt, dass ich nicht weiss, ob es überhaupt möglich ist, Elemente in der Picbox zu verschieben.
Mit der Methode "doDragDrop(..)" wird das Steuerelement unter der Cursorposition bestimmt und überprüft, ob es sich um ein gültiges Ablageziel handelt.
Es werden aber nicht die weiteren Funktionen, wie "DragOver" ausgeführt.

Weiss jemand, wie man das lösen kann oder ob es überhaupt gehen kann, in der Picbox etwas zu verschieben?

Eva
 
Hallo.

Du meinst selbst gezeichnete Punkte, oder?
Kannst nur die MouseEvents abfangen. Bei einem MouseDown nachsehen ob darunter ein Punkt liegt, wenn dem so ist, verfällt dein Programm in den "Verschiebe-Modus", beim nächsten MouseUp hast dann die neue Position vom Punkt.

MfG,
Alex
 
Hallo,
ja genau, selbst gezeichnete Punkte!

Von dem Punkt, den ich verschieben will, habe ich die Koordinaten bereits!

Aber was meinst du mit dem "Verschiebe-Modus"? Meinst du "Mouse-Move"?

Danke, Eva
 
Eva hat gesagt.:
Von dem Punkt, den ich verschieben will, habe ich die Koordinaten bereits!

Aber was meinst du mit dem "Verschiebe-Modus"? Meinst du "Mouse-Move"?

Nein, meine ich nicht. Sondern dein Programm muss irgendwie wissen, das es die jetztigen Mausbewegungen als Verschiebeaktion interpretieren muss.
Kannst eine boolsche Variable benutzen, und diese auf true setzen.

So könnte das ganze in etwa aussehen:

  • Mausklick auf den Punkt
    Du lässt zum verschieben die Taste gedrückt. Im Programm wird eine boolsche Variable auf true gesetzt, und du solltest dir merken welcher Punkt verschoben wird (sollte es mehrere geben.) Mit dem boolschen Wert könntest du das Paint-Ereignis verändern, das immer an der momentanen Position der Maus ein Punkt in ner andern Farbe gezeichnet wird, der andeutet das du gerade was verschiebst.
  • Bewegen der Maus
    Das bewegend er Maus ist der verschiebe Vorgang. Könntest hier schon die Koordinaten des Punkts verändern, oder auch nicht. Ist dir überlassen. Kannst ja auch beides probieren.
  • Loslassen der Maustaste
    Der boolsche Wert wird wieder auf false gesetzt, und die Koordinaten des Punktes neu gesetzt.
 
Zurück