| |
VB.NET - Ein- und UmsteigerDrag Drop Zeilen von Datagridview in Datagridview | | | Autor: Dideldum | Datum: 26.03.23 23:30 |
| Hi Ihr,
jetzt plage ich mich schon wieder mit einem Problem.
Ich habe meine DGV_Folders, in welcher Verzeichnisse gelistet sind und eine DGV_Files, in welcher die Dateien des jeweils selektierten DGV-Folder-Verzeichnisses ausgegeben werden.
Nun ist ja in der DGV-Folders logischerweise das aktuelle Verzeichnis selektiert, wenn ich aus der DGV-Files Dateien markiere und in die DGV-Folders auf einen anderen Ordner ziehe.
Nur...
Wie bekomme ich beim Ziehen/Ablegen den Ziel-Ordnernamen der DGV-Folders, also die nicht selektierte DGV-Folders.row, über der ich die Maustaste loslasse?
Habe mir das einfach vorgestellt...
Private Sub dgv_Folders_DragDrop(sender As Object, e As DragEventArgs) _
Handles dgv_Folders.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop, True) = True Then
Files_Kopieren()
Dim DGRow As DataGridViewRow = e.Data.GetData(GetType( _
DataGridViewRow)) ' Falsch!!!
MsgBox(dgv_Folders.Rows(DGRow.Index).Cells(0).Value) ' Ergibt
' Null-Value - Fehler
If DGRow.Index > -1 Then
AuswählenOrdner("", DGRow.Index)
ausschneidenFlag = True ' Löscht nach dem erfolgreichen
' Einfügen die Quelldateien
Files_Einfügen()
End if
end if
end sub Das klappt aber nicht.
DGV_Folder_CellMouseEnter wird unterm Drag/Drop nicht ausgeführt.
Darin hätte ich ja die e.RowIndex auslesen können.
Wie erhalte ich also im DragDrop die DGV_Folders.Row unter der Maus, also das nicht selektierte Zielverzeichnis, um meine gedragten Dateien da rein zu droppen?
Habe keine Idee mehr dazu.
Beste Grüsse | |
Re: Drag Drop Zeilen von Datagridview in Datagridview | | | Autor: Dideldum | Datum: 02.04.23 22:31 |
| 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. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|