VB 5/6-Tipp 0532: Drag und Drop in ListViews
von Peter K. Sauer
Beschreibung
Dieser Tipp demonstriert die Verwendung von Drag & Drop bei Listviews
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '---- Anfang Projektdatei Demo Drag & Drop ListView.vbp ---- ' Die Komponente 'Microsoft Windows Common Controls 6.0 (SP6) (mscomctl.ocx)' wird benötigt. '--- Anfang Formular "Form1" alias Demo Drag & Drop ListView.frm --- ' Steuerelement: Textfeld "Text1" ' Steuerelement: Listenanzeigesteuerungselement "ListView2" ' Steuerelement: Listenanzeigesteuerungselement "ListView1" ' Steuerelement: Beschriftungsfeld "Label1" ' 'Autor: Peter K. Sauer peter.k.sauer@web.de Option Explicit Private Sub Form_Load() 'Initialisierung Dim i As Integer Dim objItem As ListItem With ListView1 .ColumnHeaders.Add , , "tx1", 800 'Demo-Header hinzufügen .ColumnHeaders.Add , , "tx2", 800 'Demo-Header hinzufügen .MultiSelect = True .View = lvwReport 'Ansicht: Details .GridLines = True 'Sichtbare Zeilenstriche an .OLEDragMode = ccOLEDragAutomatic For i = 1 To 5 Set objItem = .ListItems.Add(, , "Eintrag " & i) .ListItems(i).SubItems(1) = "Sub" ' Demo-Text hinzufügen Next End With With ListView2 .ColumnHeaders.Add , , "tx1", 800 'Demo-Header hinzufügen .ColumnHeaders.Add , , "tx2", 800 'Demo-Header hinzufügen .MultiSelect = True .View = lvwReport 'Ansicht: Details .GridLines = True 'Sichtbare Zeilenstriche an .OLEDropMode = ccOLEDropManual End With End Sub Private Sub ListView1_OLESetData(Data As MSComctlLib.DataObject, DataFormat As Integer) ' Beim klick auf ein Listview1 eintrag diesen "nehmen" ' oder bei Mehreren diese durch Enter ("vbCrLf") trennen Dim i As Integer Dim zw As String For i = 1 To ListView1.ListItems.Count If ListView1.ListItems(i).Selected Then If Len(zw) <> 0 Then zw = zw & vbCrLf End If zw = zw & ListView1.ListItems(i).Text End If Next Data.SetData zw DataFormat = vbCFText End Sub Private Sub ListView2_OLEDragDrop(Data As MSComctlLib.DataObject, _ Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) ' Einfügen der "gedroppten" Einträge Dim myItems() As String Dim myItemsData As String Dim objItem As ListItem Dim i As Integer ' nur zur Demo der übergebenen Daten If Data.GetFormat(vbCFText) Then Text1.Text = Data.GetData(vbCFText) End If If Data.GetFormat(vbCFText) Then myItemsData = Data.GetData(vbCFText) myItems = Split(myItemsData, vbCrLf, -1, vbBinaryCompare) For i = LBound(myItems) To UBound(myItems) Set objItem = ListView2.ListItems.Add(, , myItems(i)) Next ListView2.Refresh End If End Sub '--- Ende Formular "Form1" alias Demo Drag & Drop ListView.frm --- '----- Ende Projektdatei Demo Drag & Drop ListView.vbp -----
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB5 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB6 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 2 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Christian Sandrini am 08.07.2004 um 08:51
Hi,
Wie kann ich das einbinden, dass auch der tag, und das bild mitgegeben wird? Ich krieg das net hin...
Kommentar von matt am 08.01.2004 um 02:30
Thank you