Solved

Best way to 'search' controls on a panel

Posted on 2007-11-30
6
176 Views
Last Modified: 2010-04-23
I have a form's tab that displays a table.
In that table, I will have x number of rows.
On each row, I'll have a checkbox, and two combos.  The names of each are very similar but unique to any additional rows.

I now have my code displaying these and functioning the way I want, so it's time to take the data there and drop it into a database.

My problem: determining the best way to get at those controls and the data the contain...
I have two ideas so far, but wanted to know the more efficient route to take.
   Loop through all controls on the panel? (I will have a class-level counter variable to determine how many rows)
   Setup a 'hidden' control that would hold the primary name (that all 3 controls in a row are based off of)
   Or, some other ingenious method? :^)
   
0
Comment
Question by:sirbounty
  • 3
  • 3
6 Comments
 
LVL 67

Author Comment

by:sirbounty
ID: 20381480
This is the approach I have taken so far, and it seems adequate, so I'm just looking for confirmation from those more versed in .Net that I'm using the right approach...
If I can get the checkbox name, then I will have the two combo's names.
For Each ctl As Control In tlpAppts.Controls
  If TypeOf (ctl) Is CheckBox Then
  

Open in new window

0
 
LVL 55

Accepted Solution

by:
Jaime Olivares earned 250 total points
ID: 20381596
The code snippet you posted is correct and the usual solution, but notice some controls are inside other controls. By example your panel can contain a GroupControl that contains many controls. In that case you will need an extra nested For..Each loop.
0
 
LVL 67

Author Comment

by:sirbounty
ID: 20381684
In this case, it's just the run-time created table.  Besides the checkbox and combos, I'll have two buttons, and that'll be it.
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 20381725
To extend my comment:
For Each ctl As Control In tlpAppts.Controls
        If TypeOf (ctl) Is GroupBox Then
              For Each ctl1 As Control In ctl.Controls
                     If TypeOf (ctl1) Is CheckBx Then
                       ' call function to process control
                     End If
              End For
        End If
End For

Open in new window

0
 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 20381740
Then the code snippet you posted is OK
0
 
LVL 67

Author Comment

by:sirbounty
ID: 20381805
Easy 250 for you then mate.
Thanx again for the help! :^)
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
Introduction As chip makers focus on adding processor cores over increasing clock speed, developers need to utilize the features of modern CPUs.  One of the ways we can do this is by implementing parallel algorithms in our software.   One recent…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question