DragDrop von DirListBox nach ListBox

Hallo an Alle!

Ich möchte aus einer DirListBox den Inhalt von Dir1.Path in eine ListBox per Drag and Drop übergeben

Habe nun die Eigenschaft DragMode auf Automatisch gesetzt

und im Quellcode

Private Sub List1_DragDrop(Source As Control, X As Single, Y As Single)
List1.AddItem Dir1.Path
End Sub

eingetragen.

Nun Funktioniert das ganze nur wenn ich erst den Korrekten Path aussuchen ( durch anklicken ) und kann danach mit gehaltener Maustaste die gesamte DirListBox als Schatten auf die Listbox ablegen (da sollte eigentlich nur der ausgewählte Paht als Schatten verschoben werden)

wenn ich nun aber noch einen anderen Angezeigten Paht mit gehaltener Maustaste nach unten Verschieben erscheint in der ListBox nochmals der Zuvor verschobene Phat (soll es so Funktionieren wie ich es mir gedacht habe muß ich zuerst den Paht einmal anklicken und danach mit gehaltener Maustaste die DirListbox auf die Listbox verschieben)

Ich hoffe Ihr könnt meiner Erklärung folgen und versteht was ich machen möchte.

Für eure Hilfe bedanke ich mich schon im Vorfeld.

Cu Stefan Behrendt

Hallo Stefan.

Das „normale“ DragDrop-Ereignis ist eigentlich für das Verschieben von Steuerelementen gedacht. Du solltest es mit dem OLEDragDrop-Ereignis, oder wie das heißt, versuchen. Ahnung habe ich davon aber keine, das habe ich noch nie ausprobiert.

Viele Grüße
Carsten

Hallo,

Private Sub List1_DragDrop(Source As Control, X As Single, Y
As Single)
List1.AddItem Dir1.Path
End Sub

Du überträgst nur eine Zeile der Liste. Wenn Du die ganze Liste übertragen möchtest, mußt Du jede Zeile einzeln übertragen.

Option Explicit

Private Sub List1\_DragDrop(Source As Control, X As Single, Y As Single)
 Dim i As Integer
 For i = -10 To Dir1.ListCount - 1
 If Dir1.List(i) "" Then
 List1.AddItem Dir1.List(i)
 End If
 Next
End Sub

Ich fange mit -10 an, weil Dir1 nicht bei Null zu zählen anfängt.

Gruß, Rainer

Du überträgst nur eine Zeile der Liste. Wenn Du die ganze
Liste übertragen möchtest, mußt Du jede Zeile einzeln
übertragen.

Sorry Habe mich wahrscheinlich etwas verdrückt Ausgekehrt !

Es geht darum eine Überwachung von verschiedenen Pahtbereichen auf unterschiedlichen Festplatten zu Realisieren

Diese werden von einer Routine die ich bereits habe bei jedem Programmende von Windows kontrolliert und mit dem gespeicherten Inhalt verglichen um ggf. neue Dateien gleich zu Backupen.

beim Drag and Drop soll nicht der gesamte Inhalt der DirListBox übergeben werden sondern nur der zu kontrollierende Paht.

aber trotzdem erst einmal Danke
Stefan Behrendt

Hallo Stefan,

ich habe ein wenig herumexperimentiert, was Du möchtest scheint mit drag and drop so nicht zu gehen. Sieh Dir den Code mal an, der tut vermutlich, was Du möchtest.

Option Explicit
Dim dx As Integer

Private Sub Dir1\_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Text1.Left = Dir1.Left
 dx = X
 Text1.Top = Y + 180
 Text1.Text = Dir1.List(Dir1.ListIndex)
 Text1.Visible = True
 Dir1.Enabled = False
End Sub

Private Sub Form\_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If Text1.Text "" Then
 Text1.Text = ""
 End If
End Sub

Private Sub List1\_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If Text1.Text "" Then
 List1.AddItem Text1.Text
 Text1.Text = ""
 End If
End Sub

Private Sub Text1\_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Text1.Left = Text1.Left + (X - dx)
 Text1.Top = Text1.Top + (Y - 100)
End Sub

Private Sub Text1\_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Text1.Visible = False
 Dir1.Enabled = True
End Sub

Gruß, Rainer

Hallo Stefan,

schau mal hier http://www.aboutvb.de/khw/artikel/khwlistitemoledrag…
dort findest du eine Anleitung wie du das realisieren kannst :smile:

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo an Alle,

danke für eure Hilfe

Rainer Fischer deine Idee ist toll,(kann ich bestimmt noch woanders Verwenden so ich darf ;0}) werde aber den Tip von Anno74 nachbasteln um entlich mit OLE Drag and Drop vertraut zu werden.

Nochmals Danke und Cu

Stefan Behrendt

Hallo Stefan,

poste mal den Code, wenn Du’s fertig hast.

Gruß, Rainer