vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Listview mit Bildern mittels Backgroundworker befüllen 
Autor: Chr78
Datum: 27.06.11 22:39

Ich stehe vor folgendem Problem: Ich möchte eine Listview mit Bildern befüllen - was grundsätzlich nicht das Problem ist. Da sich aber in den Ordnern meist mehrere tausend Bilder befinden, wollte ich das ganze einen Backgroundworker übergeben.

Private myImageList As ImageList = New ImageList 'ImageList erstellen
 
    Private Sub TestToolStripMenuItem_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles TestToolStripMenuItem.Click
        'Eigenschaften des Listviews festlegen 
        Me.lv_bilder.LargeImageList = myImageList
        Me.lv_bilder.View = View.LargeIcon
        myImageList.ImageSize = New Size(100, 100) 'Größe festlegen
        BW_Bilder.WorkerReportsProgress = True
        BW_Bilder.RunWorkerAsync(aktuellesVerzeichnis)
    End Sub
 
    Private Sub BW_Bilder_DoWork(ByVal sender As Object, ByVal e As _
      System.ComponentModel.DoWorkEventArgs) Handles BW_Bilder.DoWork
        Dim tmpSucheUDT As String = DirectCast(e.Argument, String)
        Dim c As Int32 = 0
        Dim dir As IO.DirectoryInfo = New IO.DirectoryInfo(tmpSucheUDT)
        Try
            For Each myFile As IO.FileInfo In dir.GetFiles
                If allowedExtensions.Contains(myFile.Extension) Then
                    Try
                        myImageList.Images.Add(Bitmap.FromFile(myFile.FullName))
                        Dim myLVItem As ListViewItem = New ListViewItem( _
                          myFile.Name, c)
                        myLVItem.Tag = myFile.FullName
                        myLVItem.ToolTipText = myFile.FullName
                        c += 1
                        BW_Bilder.ReportProgress(0, myLVItem)
                    Catch ex As OutOfMemoryException
                        'dann ist es kein Bild 
                    End Try
                End If
            Next
        Catch ex As UnauthorizedAccessException
        End Try
    End Sub
 
    Private Sub BW_Bilder_ProgressChanged(ByVal sender As Object, ByVal e As _
      System.ComponentModel.ProgressChangedEventArgs) Handles _
      BW_Bilder.ProgressChanged
        Dim lvi As New ListViewItem
        lvi = e.UserState
        Me.lv_bilder.Items.Add(lvi)
    End Sub
Mir ist klar, wo das Problem ist, nur nicht wie ich es lösen kann. Danke im voraus.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Listview mit Bildern mittels Backgroundworker befüllen1.591Chr7827.06.11 22:39
Re: Listview mit Bildern mittels Backgroundworker befüllen851ModeratorFZelle27.06.11 23:09

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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