Autor Beitrag
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Do 26.06.08 22:14 
Ich implementiere gerade Drag & Drop zwischen einem GridView auf der einen Form und einer Textbox auf der anderen. Hierzu verwende ich folgende Events
GridView:
- MouseDown für das Setzen eines Boolean
- MouseMove für die Ausführung der Methode DoDragDrop
- MouseUp für das Abbrechen

Textbox:
- DragOver für das Validieren des Objekts
- DraDrop für das Übernehmen der Daten

Soweit ganz gut. Nur dummerweise kann ich nur einmal ziehen, danach erscheint es so, als ich nach dem Loslassen der Maustaste immer noch im Drag-Modus bin, wenn ich über das Grid fahre. Irgendwas habe ich vergessen zum Abbrechen bzw. Beenden des Drags.

Hat mir jemand einen kleinen Hint?
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: So 13.07.08 11:19 
Ich hab mir das jetzt noch mal angeschaut: Problem wird wohl sein, dass das Event OnMouseUp beim Fallenlassen auf dem andern Form nicht ausgeführt wird und damit die Boolean-Variable nicht auf false gesetzt wird. Dadurch wird die Methode DoDragDrop in OnMouseOver natürlich wieder ausgeführt, sobald ich die Maus über das alte Control bewege.

Problem ist nur, wie setze ich das zurück, ich will nicht direkt die Variable vom Zielcontrol aus zurücksetzen, weil ich mehrere Drag-Drop-Operationen von verschiedenen Controls zulassen muss.

//EDIT: Hat sich erledigt, ich bins nochmal genau durchgegangen: Ich habe vergessen abzufragen, ob die Methode DoDragDrop bereits ausgeführt wurde in OnMouseMove. Dadurch wurde sie mehrfach gestartet und da ich nur einmal droppen kann ... ;)