arraylist - childmdifrm.Activate - how?

A

Adda

In a Parent mdi form I have a datagrid. I select a record
from the grid and then invoke a childmdi form. I add the
childmdi to an arraylist to keep track of it. If a user
has selected multiple records from the grid and has
multiple childmdi forms open and then re-selects a
previously selected record, I want to activate that
childmdi form. Suppose the arraylist contains indexes
0,1,2,3,4 (5 childmdi forms). A user re-selects a child
at index 2. How can I activate that childform?
Pseudocode:
dim arrayfrms As New Arraylist
....
arrayfrms(2).Activate

TIA
Adda
 
A

Adda

Thank you all for not holding my hand on this one :).
Here is what I tried that seems to work:

Dim i As Integer = arrEditNum.BinarySearch(drg1
(cma.Position, 0))
Dim frm As frmEdit = CType(arrEditfrm(i), frmEdit)
frm.Activate()

So I get the position of the record on the grid from the
currency manager and the ID value (at column 0 on the
grid). But I am using 2 arraylists. One list contains
the IDs and the 2nd arraylist contains the forms. I was
thinking about creating a small class object to contain
both items (ID and frm) so I could search on the ID
property and then invoke/activate the frm property of my
little class object in the arraylist. but back to square
one:

i = arrObj(??).BinarySearch(...)
Dim frm as...(arrObj(??))

Any suggestions how to get the values of my class object
from the arrylist greatly appreciated.

Adda
 
M

Marina

What about using a Hashtable. You can add an ID/form pair. And that way
you can index into the hashtable directly by the ID of the row, to get the
corresponding form, and you don't need to keep multiple lists.
 
A

Adda

This seems like a good idea. May I ask how I retrieve the
value part of the hashtable?

Dim myHT as Hashtable
myHT.Add(0, child)
....
myHT.Add(1, child)
....
myHT.Add(2, child)
....

Now to activate child form at position 1

Dim frm As frmChild = CType(myHT(?), frmChild)
frm.Activate

Thanks for your reply.
Adda
 
M

Marina

You have the code correct. You would index it by the ID you gave it when you
added the item. So, 0, 1, or 2 in your case, since you added 3 items, with
those keys. Basically, the first parameter to Add it the key, the second is
the value. So whatever the key was that you are looking for.

Hashtable has complete documentation.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top