Hi, I now have the back end of a music library application and I am now working on the GUI side.
I would like to display all the albums (Album cover art, Title and Artist) in a scrollable area, and would like some advice on how to do this:
Firstly is it a good idea to create a user control for each album? I knocked one together which is basically made up of a picture box (for the album art) and two labels underneath (for the title and artist). The plan was to place them on a panel and allow the user to scroll along them (in a grid view style). I got this working with a mock up using a button on the panel and got code working so you could "flick" the button left and right, but as soon as I added a large number of buttons (100) it became pretty much unusably slow! (I was using the Button1.Left property to move each button)
- Can someone suggest a better way of doing this?
- Is my custom control a good idea?
- Will I need to create a custom version of the Panel (or similar) to get a better "smooth" scroll?
- I assume for optimization I will only want to load the album art just before it comes into view, and unload it once it leaves view? (I currently have about 400 albums)
- Maybe I was just being unrealistic using 100 buttons as a test, as in the actual GUI I guess there will only ever be about 20-30 albums on the screen at once!
- Should I use a separate thread for loading the album arts?
I'm pretty stuck on what to try/do next so any help/pointers would be greatly appreciated.