Hab's hinbekommen:
für das Treeview trv_Folders (Eigenschaft des Controls "AllowDrop" auf true setzen):
Private Sub trv_Folders_DragEnter(sender As Object, e As DragEventArgs) _
Handles trv_Folders.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
'There Is File - Allow copy.
e.Effect = DragDropEffects.Copy
Else
'There Is no file - Prohibit drop.
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub trv_Folders_DragDrop(sender As Object, e As DragEventArgs) _
Handles trv_Folders.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop, True) = True Then
Dim p As Point = trv_Folders.PointToClient(New Point(e.X, e.Y)) '
' so klappt es
Dim dragIndex As TreeNode = trv_Folders.HitTest(p.X, p.Y).Node
If dragIndex IsNot Nothing Then
objekteEntladen()
Objekt_Kopieren()
trv_Folders.SelectedNode = dragIndex
ordnerPfad = trv_Folders.SelectedNode.FullPath
auswahl_Ordner(ordnerPfad, My.Settings.Programm_Expertenansicht)
ausschneidenFlag = True ' Löscht nach dem erfolgreichen
' Einfügen die Quelldateien
Objekt_Einfügen()
End If
End If
End Sub Und für das Datagrid dgv_Folders (Eigenschaft des Controls "AllowDrop" auf true setzen):
Private Sub dgv_Folders_DragEnter(sender As Object, e As DragEventArgs) _
Handles dgv_Folders.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub dgv_Folders_DragDrop(sender As Object, e As DragEventArgs) _
Handles dgv_Folders.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop, True) = True Then
Dim p As Point = dgv_Folders.PointToClient(New Point(e.X, e.Y)) '
' So klappt es
Dim dragIndex = dgv_Folders.HitTest(p.X, p.Y).RowIndex
If dragIndex - 1 Then
objekteEntladen()
Objekt_Kopieren()
ordnerPfad = IO.Path.Combine(aktivesArchivPfad, _
dgv_Folders.Rows(dragIndex).Cells(0).Value)
auswahl_Ordner(ordnerPfad, My.Settings.Programm_Expertenansicht)
ausschneidenFlag = True ' Löscht nach dem erfolgreichen
' Einfügen die Quelldateien
Objekt_Einfügen()
End If
End If
End Sub Aber was stimmt mit dem folgenden Code nicht?
Dim dragIndex As TreeNode = trv_Folders.GetNodeAt(e.X, e.Y) Im Mouseclick funktioniert der Code, aber nicht im DragDrop, obwohl ich hier auch die e.X und e.Y-Koordinaten bekomme. |