Beim abfüllen einer Listview mit Bilder, wird jeder von euch mal auf das Problem gestossen sein, dass eine merkwürdige Fehlermeldung erscheint.
Oft ergibt eine Analyse des Bilds: Es ist ungültig.
Wie kann ich jetzt die Liste abfüllen?
Die Lösung
Mit dieser einfachen, kleinen Funktion:
''' <summary>
''' Funktion zum Testen ob ein Bild gültig ist
''' </summary>
''' <param name="strFullname">Pfad + Name des Bildes</param>
''' <returns></returns>
''' <remarks></remarks>
Private Function checkImageIsValid(strFullname As String) As Boolean
Dim img As Image
'--------------------
' Der Wert ist standartmässig True
checkImageIsValid = True
Try
' Bild wird geladen
img = Image.FromFile(strFullname)
' Objekt muss zerstört werden
img.Dispose()
' Falls alles gut läuft (also das Bild gültig ist), bleibt der Wert True
Catch ex As Exception
' Falls ncht gibt es einen Fehler und der Wert wird False
checkImageIsValid = False
End Try
End Function
Danach muss man nur noch ein IF - Statement um das Abfüllen machen:
If checkImageIsValid(strFullname) = True Then
'Listview Abfüllen
lvMedien.Items.Add(strFullname, intBildNummer)
lvMedien.Items.Item(intBildNummer).Text = strName
lvMedien.Items.Item(intBildNummer).Name = strFullname
Dim img As Image = Nothing
img = Image.FromFile(strFullname)
ilMedien.Images.Add(img)
img.Dispose()
'-------------------
' Index steigt um 1
'-------------------
intBildNummer = intBildNummer + 1
End If
0 Kommentare:
Kommentar veröffentlichen