Hello my fellow DanniWebbers, it is me againg. I have yet another question for you guys and gals.

I have a parent panel with child panels that contain images. I am looping through the panels to save the images in the order the panels appear in the parent panel.

I am using:

for p as Panel in ImagePanel.Controls
  scannedImages(j) = p.BackGroundImage
  j += 1

I can also re-arrange the panels via mouse. The problem is that when they are rearranged, they do not retain their order when saved.. They simply are saved in the order they were added to the parent panel.

So my question is, does the for loop use the index set when adding the panel? If so, how can I manipulate the index in runtime while arranging the panels via mouse.

Recommended Answers

All 4 Replies

One suggestion is to declare an array of references to panel and assign the panels to the array in the order you want to reference them.

Private panels(2) as Panel

panels(0) = myPanel1
panels(1) = myPanel2
panels(2) = myPanel3

That is what I have scannedimages for, but for some reason it does not want to keep the order of the panels post rearrange. I would like to have the ability to move the panels and when the user presses "Save", the panels are then saved in their current order. The problem is, they are saved in the order they were scanned in. :(

If I understand correctly, you could save the positions of the panels in My.Settings then restore those positions when you reopen the app.

Sorry for long reply, and not marking question solved.....

Answer was to loop through the panels and do a buble sort.


is next.y position < this.y Position
Yes: this.index = next.index, next.index = this.index


That way it resorts the index of the panels (Which is what is used when looping through controls.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.