Bestanden en mappen weergeven

Status
Niet open voor verdere reacties.

toine201

Gebruiker
Lid geworden
20 dec 2008
Berichten
107
Ik ben bezig met een desktopprogramma waarmee men ook zijn eigen documenten kan bekijken. Ik wil dus dat er in een panel icoontjes staan met de mappen en bestanden uit mijn documenten en als je er op klikt dat hij dan het bestand opent. Ik heb al wel de code voor een listview maar niet die voor icoontjes (pictureboxen).

Heeft iemand een code?

Alvast bedankt
 
Je gebruikt PictureBoxen voor de pictogrammen? :confused:
Dat kan ook in de ListView zelf. Zet de View op LargeIcon of op SmallIcon.

Welke code voor de ListView heb je al?
 
Code:
       'FolderBrowserDialog1.ShowDialog()
        'pad = FolderBrowserDialog1.SelectedPath
        pad = "C:\listview"
        ListView1.Columns.Clear()
        Try

            Dim DI As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(pad)
            Dim files() As System.IO.FileInfo = DI.GetFiles
            Dim file As System.IO.FileInfo
            For Each file In files
                Select Case file.Extension
                    Case ".jpeg", ".gif", ".bmp", ".jpg", ".tif", ".tiff", ".avi"
                        Dim rdg As Integer
                        rdg = Int(Rnd() * 5 + 1)
                        Dim li As New ListViewItem(file.FullName, rdg, ListView1.Groups(0))

                        ListView1.Items.Add(li)
                End Select
                Select Case file.Extension
                    Case ".docx"
                        Dim rdg As Integer
                        rdg = Int(Rnd() * 5 + 1)
                        Dim li As New ListViewItem(file.FullName, 7, ListView1.Groups(1))

                        ListView1.Items.Add(li)
                End Select
                Select Case file.Name
                    Case "Epson Scan.lnk"
                        Dim rdg As Integer
                        rdg = Int(Rnd() * 5 + 1)
                        Dim li As New ListViewItem("Epson Scan", 10, ListView1.Groups(2))
                        'bestand = "Epson Scan"
                        ListView1.Items.Add(li)
                End Select
                Select Case file.Name
                    Case "TeamViewer 6.lnk"
                        Dim rdg As Integer
                        rdg = Int(Rnd() * 5 + 1)
                        Dim li As New ListViewItem("TeamViewer", 11, ListView1.Groups(2))
                        'bestand = "Epson Scan"
                        ListView1.Items.Add(li)
                End Select
                Select Case file.Name
                    Case "Afdruktaken.lnk"
                        Dim rdg As Integer
                        rdg = Int(Rnd() * 5 + 1)
                        Dim li As New ListViewItem("Afdruktaken", 12, ListView1.Groups(2))
                        'bestand = "Epson Scan"
                        ListView1.Items.Add(li)
                End Select
                ' Select Case file.Extension
                '    Case ".lnk"
                'Dim rdg As Integer
                'rdg = Int(Rnd() * 5 + 1)
                'Dim li As New ListViewItem(file.Name, 8, ListView1.Groups(1))

                'ListView1.Items.Add(li)
                'End Select
                Select Case file.Name
                    Case "Internet Explorer.lnk"
                        Dim rdg As Integer
                        rdg = Int(Rnd() * 5 + 1)
                        Dim li As New ListViewItem(file.Name, 9, ListView1.Groups(1))

                        ListView1.Items.Add(li)
                End Select
            Next

        Catch ex As Exception
            MsgBox("Geen geldig pad.")
            End
        End Try
 
De bovenstaande code geeft alleen de bestanden weer maar niet de mappen.
 
Sorry, maar wat probeer je dan precies te doen met al die random nummers, extensies en hardcoded filenames :confused:
 
Hij maakt per extensie een icoon maar ik heb geen idee hoe ik ook mappen kan laten weergeven
 
[cpp]Private Sub AddIcons(ByVal Directory As String)
Dim imageList As New ImageList
With ListView1
ListView1.LargeImageList = imageList
ListView1.View = View.LargeIcon
ListView1.BeginUpdate()
End With

For Each file As IO.FileInfo In New IO.DirectoryInfo(Directory).GetFiles
Dim iconForFile As Icon = SystemIcons.WinLogo ''//standaard pictogram
Dim item As ListViewItem = New ListViewItem(file.Name, 1)
If Not imageList.Images.ContainsKey(file.Name) Then
iconForFile = System.Drawing.Icon.ExtractAssociatedIcon(file.FullName)
imageList.Images.Add(file.Name, iconForFile)
End If
item.ImageKey = file.Name
ListView1.Items.Add(item)
Next
For Each folder As IO.DirectoryInfo In New IO.DirectoryInfo(Directory).GetDirectories
Dim item As ListViewItem = New ListViewItem(folder.Name, 1)
''// Dim FolderIcon As Icon = kopieer een folder-pictogram naar je resources en gebruik m hier.
imageList.Images.Add(folder.Name, FolderIcon)
item.ImageKey = folder.Name
ListView1.Items.Add(item)
Next
ListView1.EndUpdate()
End Sub[/cpp]

Vervang het gecommente deel door een eigen pictogram van een map.

BTW snap ik nog steeds niet wat je met random getallen moest :P
 
Bedankt de code werkt maar hoe stel ik iconen per extensie in? Ik heb namelijk zelf iconen gemaakt.
 
Deze afbeelding geeft weer hoe ik het ongeveer zou willen in VB.NET
mijndocumenten.jpg

Hij moet dus weergeven welke bestanden en mappen er in de map Mijn documenten staan en als ik er op klik dat hij dat bestand dan ook op opent. De volgende code heb ik al maar deze werkt alleen op een Listview.
Code:
        Dim imageList As New ImageList
        With ListView1
            ListView1.LargeImageList = imageList
            ListView1.View = View.LargeIcon
            ListView1.BeginUpdate()
        End With

        For Each file As IO.FileInfo In New IO.DirectoryInfo(Directory).GetFiles
            Dim iconForFile As Icon = SystemIcons.WinLogo ''//standaard pictogram
            Dim item As ListViewItem = New ListViewItem(file.Name, 1)
            If Not imageList.Images.ContainsKey(file.Name) Then
                iconForFile = System.Drawing.Icon.ExtractAssociatedIcon(file.FullName)
                imageList.Images.Add(file.Name, iconForFile)
            End If
            item.ImageKey = file.Name
            ListView1.Items.Add(item)
        Next
        For Each folder As IO.DirectoryInfo In New IO.DirectoryInfo(Directory).GetDirectories
            Dim item As ListViewItem = New ListViewItem(folder.Name, 1)
            Dim FolderIcon As Icon = SystemIcons.Information
            imageList.Images.Add(folder.Name, foldericon)
            item.ImageKey = folder.Name
            ListView1.Items.Add(item)
        Next
        ListView1.EndUpdate()

Ik heb zoals je ziet eigen iconen gemaakt per extensie en voor de mappen en deze zou ik ook willen gebruiken.
 
Dan zou je die pictogrammen in een ImageList moeten gooien, en dan controleren per extensie het icoon toewijzen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan