Hello Bruno,

It would be fine to have an event 'onGetImage' called when the box needs to display an image. Additionaly, only displayed images could be stored by the list ( a new property 'dontKeepImages' ?).

The listBox would be more dynamic, loading would be faster and use less resources.
It could be used in a larger panel of usage like thumbnails.


Dear Mr. Coche, 

Your approach relies on the fact that only 20 images are displayed when the listbox could be displaying 1000 images, when scrolling, dynamically load more images. and remove the ones that are not visible anymore

The images are already loaded in this way when scrolling, depending on the threadloading event and only the visible ones are used for drawing.

the only difference is the images are not freed afterwards and remain in memory. To maintain performance, this must be done for zooming the image, using a larger scale of it or when scrolling fastly with animation.

Kind Regards, 
Scheldeman Pieter

Thank you Peter for your answer.

I suppose (?) that it's true when images are loaded from a file. In my case, images are only in memory, I have to use a LoadFromStream method. If I do that in the initialization procedure, all my images will be loaded, it's right ?

Of course, I prefer to load my images "on-demand", is there any event where I can do something like that ?
I understand for keeping in memory the previously loaded images.

Best regards,