Anfang des Inhaltsbereichs

Funktionsdokumentation Drag&Drop  Dokument im Navigationsbaum lokalisieren

Verwendung

Mit Drag&Drop kann der Anwender Objekte aus einem Bereich eines Custom Controls (Quelle) markieren und auf einen anderen Bereich eines Custom Controls (Ziel) fallen lassen. Je nach Objekt wird dann im zweiten Bereich eine Aktion ausgeführt. Quelle und Ziel können dabei das gleiche Control oder zwei unterschiedliche Controls sein.

Voraussetzungen

Damit Controls Drag&Drop-fähig sind, muß die Control-Verschalung zusätzliche Drag&Drop-Ereignisse anbieten. Das Anwendungsprogramm muß für diese Ereignisse Behandlerroutinen implementieren. Die Registrierung auf die Ereignisse erfolgt automatisch über die jeweilige Control-Verschalung.

Funktionsumfang

Für jedes beteiligte Custom Control wird das Drag&Drop-Verhalten festgelegt. Je nach Control wird das Verhalten auf alle Elemente des Controls bezogen (z.B. Editor), oder man kann für jedes Teilobjekt ein eigenes Verhalten definieren (z.B. Tree). Jedes Verhalten besteht aus einer oder mehreren Beschreibungen.

Die Beschreibung hat folgende Attribute:

Sobald ein Drag-Ereignis ausgelöst wird, muß die Applikation in der entsprechenden Behandlermethode feststellen, welches Objekt von dem Ereignis betroffen ist.

Weiterhin muß für das Drop-Ereignis implementiert werden, welche Aktionen durchgeführt werden sollen. Die Aktionen sind dabei in der Regel abhängig von dem Objekt, das in das Control fallengelassen wurde.

Wurden einem Objekt mehrere Flavors zugeordnet, muß zu einem speziellen Ereignis festgelegt werden, welcher Flavor benutzt werden soll.

Nachdem das Drop-Ereignis abgeschlossen ist, können in einem zusätzlichen Ereignis weitere Aktionen durchgeführt werden. Dieses Ereignis bietet sich insbesondere beim Verschieben des Quellobjekts an, um dieses aus der Quelle zu löschen.

Aktivitäten

Wenn die Drag&Drop-Funktionalität benutzt wird, sollte auf jeden Fall auch eine UNDO-Funktion bereitgestellt werden, sofern die Drag&Drop-Funktion zu einem Verschieben des Objekts führt. Diese muß von der Anwendung implementiert werden.