vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Fortgeschrittene
Viele PictureBox(en) für eine Art Gallerie 
Autor: woodie
Datum: 16.05.10 16:03

Hallo,

ich habe folgendes Problem und brächte einen Tipp wie ich das ganze resourcenschonender Umsetzen könnte ;)
Also ich habe eine Form in der zur Laufzeit alle ".jpg" Dateien aus einen bestimmten Ordner geladen und angezeigt werden sollen. Dazu nutze ich momentan pro Bild eine eigene Picturebox, was wahrscheinlich auch das Hauptproblem darstellt... ab ca. 1000 Bilder wird das einlesen sowas von langsam, dass es mehrere Minuten dauert um alle Bilder einzulesen und das Programm verbraucht auch noch Unmengen an Arbeitsspeicher dann.
Da auf der Form im Normalfall immer nur 12 Pictureboxen im Moment zu sehen sind, könnte man doch sicher, die noch nicht sichtbaren, erst dann dynamisch nachladen lassen, wenn man mit dem Scrollbalken sie in Sichtbereich rückt. Oder gibt's noch bessere und einfache Umsetzungsmöglichkeiten?

Vielen Dank schonmal für alle Tipps!


 For Each sFile In My.Computer.FileSystem.GetFiles( _
                     sPath, FileIO.SearchOption.SearchAllSubDirectories, _
                     "*.jpg*")
 
                    Dim picbox As New PictureBox
                    picbox.Size = New Size(120, 120)
                    picbox.SizeMode = PictureBoxSizeMode.Zoom
                    picbox.WaitOnLoad = False
                    picbox.InitialImage = My.Resources.waitani
                    picbox.ImageLocation = sFile
                    picbox.Name = "picbox" + anzahl.ToString
 
                    If anzahl Mod 3 = 0 Then
                        picbox.Location = New Point(20, (höhe * 150) + 20)                        
                    ElseIf anzahl Mod 3 = 1 Then
                        picbox.Location = New Point(160, (höhe * 150) + 20)                        
                    Else
                        picbox.Location = New Point(300, (höhe * 150) + 20)
                        höhe += 1
                    End If
 
                    Me.Panel1.Controls.Add(picbox)
                    anzahl += 1                  
                End If
                Application.DoEvents()
                Label1.Text = "lade Bild " + anzahl.ToString + " von " + _
                  AnzahlTotal.ToString
            Next
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Viele PictureBox(en) für eine Art Gallerie2.499woodie16.05.10 16:03
Re: Viele PictureBox(en) für eine Art Gallerie1.861Maas16.05.10 16:50
Re: Viele PictureBox(en) für eine Art Gallerie1.848DotNetErbse18.05.10 11:41
Re: Viele PictureBox(en) für eine Art Gallerie1.742woodie25.05.10 17:31

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-2025 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