VB, was machen DragDrop DragOver usw.?

Hallo Wissende,

im Zuge der Anfrage eins drunter (Verschiebung einer Form nur innerhalb einer anderen Form stieß ich auf die Form-Ereignisse:
OLEDragDrop, OLEDragOver, DragDrop, DragOver.

nachstehenden Code naute ich in Form1 und Form2 ein. Dann startete ich beide und verschob sie übereinander, auseinander usw.
Keine Msgbox kam.

Nun meine Frage, wann treten diese Ereignisse ein?
Die Hilfe dazu habe ich gelesen. Das half mir aber nicht :frowning:
Ich habe VB5.0.

Private Sub Form\_DragDrop(Source As Control, X As Single, Y As Single)
MsgBox "dragdrop1"
End Sub
'
Private Sub Form\_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox "oledragdrop1"
End Sub
'
Private Sub Form\_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
MsgBox "dragover1"
End Sub
'
Private Sub Form\_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)
MsgBox "oledragover1"
End Sub

Danke ^ Gruß
Reinhard

Hallo Reinhard.

Hier ein kleiner Beispiel-Code zum Thema Drag & Drop. Du benötigst dazu eine Form mit einer PictureBox namens „Picture1“ drauf:

Private DragX As Single
Private DragY As Single

Private Sub Form\_DragDrop(Source As Control, X As Single, Y As Single)
 Select Case Source.Name
 Case "Picture1"
 Source.Move X - DragX, Y - DragY
 End Select
End Sub

Private Sub Picture1\_DragDrop(Source As Control, X As Single, Y As Single)
 Select Case Source.Name
 Case "Picture1"
 Source.Move X - DragX + Picture1.Left, Y - DragY + Picture1.Top
 End Select
End Sub

Private Sub Picture1\_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Picture1.Drag 1
 DragX = X
 DragY = Y
End Sub

Private Sub Picture1\_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Picture1.Drag 2
End Sub

Mit dem Code kannst Du die PictureBox auf der Form ziehen und ablegen. DragX und DragY werden benötigt, um die Maus-Position „zwischenzuspeichern“, an der das gezogene Steuerelement „festgehalten“ wurde; es gibt sonst beim Ablegen komische Effekte.

Zu OLEDrag & OLEDrop kann ich nichts weiter sagen, es wird wohl für die Datenübertragung benutzt, aber ich habe mich da noch nie rangetraut.

VG
Carsten

Hallo Carsten,

Mit dem Code kannst Du die PictureBox auf der Form ziehen und
ablegen. DragX und DragY werden benötigt, um die Maus-Position
„zwischenzuspeichern“, an der das gezogene Steuerelement
„festgehalten“ wurde; es gibt sonst beim Ablegen komische
Effekte.

danke dir für den Code. Ich bin absolut kein Theoretiker, deshalb tue ich mich auch schwer mit manchen Infos in der Hilfe. Ich muß um etwas zu begreifen es „begreifen“ im wahrsten Sinne des Wortes, also möglichst anfassen.

Bei Codes halt zumindest das Ergebnis „sehen“, bzw. daß sich überhaupt was tut.

Von daher hast du mir sehr gut weitergeholfen.

Zu OLEDrag & OLEDrop kann ich nichts weiter sagen, es wird
wohl für die Datenübertragung benutzt, aber ich habe mich da
noch nie rangetraut.

Wenn ich wüßt was es ist würde ich mich schon rantrauen wie wahrscheinlich auch du.

Für mich ist die Anfrage abgeschlossen. Ich hab noch kiloweise andere Fragen zu VB, VBA usw. und wollte es nicht vertiefen, jetzt weiß ich ja ungefähr Bescheid, das reicht erstmal :smile:

Gruß
Reinhard