How many images do you see being inside of each "imageset"?
This is a way you could also tackle your question.
You might want to create a class with a picture, name, and maybe some other properties. You could keep an array of these classes and then call what you need from that. This will give you a "box (class)" to have a unique Picture, name, and potentially other properties.
For example create a class that has a picture, and a few example properties:
(on the fly code)
// INDIVIDUAL CLASSES UNIQUE FOR EACH PICTURE
Dim x as Integer // This is how many Image Sets you need
for i as Integer = 0 to x
Dim c as New adapterName_Class // Instantiate new class to use
imagesetClass.manuPic = somePicture // load your image to this class
imagesetClass.deviceName = "ImageName" // name your image
// CREATE THE ARRAY TO HOLD ALL OF THESE SPECIFIC CLASSES YOU CREATED
Dim imagesetClassArr() as imagesetClass // YOU WILL MOST LIKELY WANT TO MAKE THIS A GLOBAL PROPERTY TO AVOID SCOPE ISSUES
// LOAD YOUR UNIQUE CLASS TO THE ARRAY
// RINSE AND REPEAT
Then a light example to draw what you have loaded in your imagesetClassArr Array for Canvas.Paint event.
for x as Integer = 0 to imagesetClassArr.Ubound
// DRAW PIC
Dim thisImage as Picture = imagesetClassArr(x).manuPic
g.drawpicture(thisImage, 0,0 thisImage.width, thisImage.height)
// DRAW NAME
Dim thisImageName as String = imagesetClassArr(x).deviceName
g.drawstring(thisImageName, x, y, w)
Hopefully this make sense, but if not please let us know.
Thanks and HTH.