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.
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.
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.
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.
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
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.