How to insert Controls at a specific location within the Controls collection when building a dynamic table.

Hi,

I am building a dynamic table which contains multiple rows and each cell contains 7 cells. One of the cells has 2 textboxes. I want to add a label to that cell at runtime. Currently I am only using "add" so it is the last control in. How can I insert the label before the first TextBox?

At present I am doing

cells(6).controls.add(myLabel)

If I want to add it before Textbox2 I do the following

cells(6).controls.Remove(Textbox1)
cells(6).controls.Remove(Textbox2)
cells(6).controls.add(myLabel)
cells(6).controls.Remove(Textbox1)
cells(6).controls.add(TextBox2)

Is there not a better way of inserting a control at a specific location in the collection without removing controls?

Thanks,

Sam
SamJollyAsked:
Who is Participating?
 
Carl TawnConnect With a Mentor Systems and Integration DeveloperCommented:
Yes, you only really need to use AddAt() if you want to force a specific location. Add() will add to the end anyway.
0
 
Carl TawnSystems and Integration DeveloperCommented:
There should be an "AddAt" method on the collection that lets you specify the index to insert at:
cells(6).Controls.AddAt(0, myLabel)

Open in new window

0
 
SamJollyAuthor Commented:
carl,

thanks for this. So assuming I need to use 2 positions depending on Unit (£ or %) then the following would be correct?

If I had 2 textboxes2

TextBox1
Textbox2

then for "£" I would need :

 cells(6).Controls.AddAt(0, myLabel)

and for "%" I would need:

 cells(6).Controls.AddAt(2, myLabel)

Is my thinking and code correct?

Thanks,

Sam

0
 
SamJollyAuthor Commented:
Actually for the "%" I can just do an "Add".

Sam
0
 
SamJollyAuthor Commented:
thanks, very helpful
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.