1.11M Members

Problem with Panel ordering.

 
0
 

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
next

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.

 
0
 

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
 
0
 

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. :(

 
0
 

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

Question Answered as of 2 Years Ago by Reverend Jim
 
0
 

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

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

Sudo

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

ect...

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

Isn't it about time forums rewarded their contributors?

Earn rewards points for helping others. Gain kudos. Cash out. Get better answers yourself.

It's as simple as contributing editorial or replying to discussions labeled or OP Kudos

You
This question has already been solved: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article