vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Maus & Tastatur · Drag & Drop   |   VB-Versionen: VB607.05.09
Drag & Drop vom Explorer ins ListView

Ein Beispiel, wie man Dateien aus dem Explorer positionsgenau in ein ListView ziehen kann.

Autor:   Dieter OtterBewertung:  Views:  14.810 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Folgende Problemstellung wurde vor einiger Zeit im Forum gepostet:

  1. Es sollen mittels Drag & Drop Dateien (bspw. aus dem Windows Explorer) in ein ListView-Control gezogen werden können.
  2. Die Datei selbst soll hierbei aber nicht am Ende der Liste angefügt werden, sondern zwischen den beiden Einträgen, über denen sich der Mauszeiger beim Loslassen der Maustaste gerade befindet.

Das Ganze lässt sich wunderbar per OLE Drag & Drop realisieren. Die korrekte Position lässt sich hierbei über die x- und y-Parameter im OLEDragDrop-Event ermitteln.

Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, _
  Effect As Long, Button As Integer, Shift As Integer, _
  x As Single, y As Single)
 
  Dim oItem As ListItem
  Dim index As Long
 
  ' Ende der Liste ermitteln
  ' wird benötigt, falls sich der Mauszeiger über 
  ' keinen existierenden Eintrag befindet)
  index = ListView1.ListItems.Count + 1
 
  ' Prüfen, ob sich der Mauszeiger über einen
  ' bereits vorhandenen Eintrag befindet
  Set oItem = ListView1.HitTest(x, y)
  If Not oItem Is Nothing Then
    ' Falls ja, Index des Eintrags ermitteln
    index = oItem.index
  End If
 
  ' neuen Eintrag der Liste hinzufügen
  ListView1.ListItems.Add index, , Data.Files(1)
End Sub



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle 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.