Home  |  Index  |  Dotnet4all Snippets  |  Submit resources
About  |  Mail us  
Dotnet4all Logo

  How to activate the childform, arraylist, childmdifrm.Activate (Friday, September 03, 2004)




Found the following interesting discussion in the Newsgroups:

arraylist - childmdifrm.Activate - how?
by: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


 Reply:
by: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


 Reply:
by: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.


 Reply:
by: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


 Reply:
by: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.


 Reply:
by:Adda

 This worked perfectly! Many thanks for your help.

Adda








 
Previous Posts
    - Basic data processing with .net
    - Multiuser Problem in .net
    - MD5 checksum of Visual Studio 2k5 preview
    - scrollbar.scroll event occuring twice
    - Help with Graphics primitives
    - Setting button image with vb.net
    - ByRef parameters for objects / reference types
    - Two combo boxes tied together on data set with .ne...
    - Reducing some array lines of code with .NET
    - Webbrowser Control Question

Archives
    - 08/01/2004 - 08/08/2004
    - 08/08/2004 - 08/15/2004
    - 08/15/2004 - 08/22/2004
    - 08/22/2004 - 08/29/2004
    - 08/29/2004 - 09/05/2004
    - 09/05/2004 - 09/12/2004
    - 09/12/2004 - 09/19/2004
    - 09/19/2004 - 09/26/2004
    - 09/26/2004 - 10/03/2004
    - 10/03/2004 - 10/10/2004
    - 01/02/2005 - 01/09/2005
    - 01/09/2005 - 01/16/2005
    - 01/30/2005 - 02/06/2005
    - 01/01/2006 - 01/08/2006


Disclaimer & Terms of Use  | DotNet4All.Com concept & © 2004 - 2007 by  Zelders²  - Holland