19. april 2005 - 10:46
Der er
1 løsning
Træk-og slip i VB
Jeg er i gang med at program der skal indeholde en liste over min musik i VB. Jeg vil gerne kunne trække en mappe hen over et vindue, således at indholdet af mappen bliver sat ind i en tabel eller lign. med samme filnavn. Idéen er, at jeg ikke skal til at indtaste det hele selv... Jeg ved ikke om det er noget der kan lade sig gøre, så er der nogen der kan hjælpe mig??
19. april 2005 - 12:49
#1
hej
jeg havde lige lidt kvalitetstid så her er lidt du kan lege med som udgangspunkt. Tilføj 1 listview og nedenstående kode:
Private Sub Form_Load()
With ListView1
.ColumnHeaders.Add , , "Filnavn", ListView1.Width / 2
.ColumnHeaders.Add , , "Filtype", ListView1.Width / 2
.View = lvwReport
.OLEDragMode = ccOLEDragAutomatic
.OLEDropMode = ccOLEDropManual
End With
End Sub
Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, _
Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim noFiles As Integer
noFiles = Data.Files.Count
If noFiles > 0 Then
For i = 1 To noFiles
Select Case GetAttr(Data.Files(i))
Case vbNormal, vbReadOnly, vbHidden, vbSystem, vbArchive
Call TilfojEnkeltFil(Data.Files(i))
Case vbDirectory
Call TilfojDir(Data.Files(i))
Case Else
'håndter fejl etc.
MsgBox "Filen kan ikke genkendes: " & Data.Files(i)
End Select
Next
Else
Exit Sub
End If
MsgBox "Antal filer: " & ListView1.ListItems.Count
End Sub
Private Sub TilfojEnkeltFil(sti As String)
Dim filtype As String
Dim noIndex As Integer
Select Case LCase(Right(sti, 3))
Case "exe"
filtype = "Programfil"
Case "mp3"
filtype = "Lydfil"
Case "xls"
filtype = "Excelark"
Case Else
filtype = "Anden filtype"
End Select
With ListView1
noIndex = .ListItems.Count
.ListItems.Add noIndex + 1, , sti
.ListItems(noIndex + 1).SubItems(1) = filtype
End With
End Sub
Private Sub TilfojDir(sti As String)
Dim fso As New FileSystemObject
Dim folderX As Folder
Dim fileX As File
If fso.FolderExists(sti) = True Then
Set folderX = fso.GetFolder(sti)
For Each fileX In folderX.Files
Call TilfojEnkeltFil(fileX.Path)
Next
Set fileX = Nothing
Set folderX = Nothing
Set fso = Nothing
Else
'stien eksisterer ikke
Exit Sub
End If
End Sub
'----------------- her til ----------------
mvh Hiks