Get Controls
-
Hi All I have two panel in my form, my 1st panel contains 3 buttons and the 2nd has 2 buttons, 3 textboxes and a label. I need to get all of these controls to save their settings into a file, I tried:
foreach (Control ctrl in this.Controls)
MyFile.ReadLine(ctrl.Text); // For exampleBut "this" has only two controls (My two panels) and I can't see the other controls contained in panels. I know I can use the foreach statement for each of my panels but if I have a panel in panel2? Do you have any idea to solve this using only one loop? Regards.
While (true) { Human.isLearnable = true; }
-
Hi All I have two panel in my form, my 1st panel contains 3 buttons and the 2nd has 2 buttons, 3 textboxes and a label. I need to get all of these controls to save their settings into a file, I tried:
foreach (Control ctrl in this.Controls)
MyFile.ReadLine(ctrl.Text); // For exampleBut "this" has only two controls (My two panels) and I can't see the other controls contained in panels. I know I can use the foreach statement for each of my panels but if I have a panel in panel2? Do you have any idea to solve this using only one loop? Regards.
While (true) { Human.isLearnable = true; }
Each Panel has a Controls property, no?
-
Hi All I have two panel in my form, my 1st panel contains 3 buttons and the 2nd has 2 buttons, 3 textboxes and a label. I need to get all of these controls to save their settings into a file, I tried:
foreach (Control ctrl in this.Controls)
MyFile.ReadLine(ctrl.Text); // For exampleBut "this" has only two controls (My two panels) and I can't see the other controls contained in panels. I know I can use the foreach statement for each of my panels but if I have a panel in panel2? Do you have any idea to solve this using only one loop? Regards.
While (true) { Human.isLearnable = true; }
You can use something like this:
foreach (Form frm in Application.OpenForms)
{
foreach (Control ctrl in frm.Controls)
MessageBox.Show(ctrl.Text);
}This contains two foreach statement but indepedent of how many forms you have, you can get their controls. zafer
-
You can use something like this:
foreach (Form frm in Application.OpenForms)
{
foreach (Control ctrl in frm.Controls)
MessageBox.Show(ctrl.Text);
}This contains two foreach statement but indepedent of how many forms you have, you can get their controls. zafer
You're right, but I have only one form, my form contains two Panels and each Panels contains some Controls. Your foreach statements give me my Panels only. Thanks
While (true) { Human.isLearnable = true; }
-
Each Panel has a Controls property, no?
Yes it has but I don't want to have a foreach statement per panel. Thanks
While (true) { Human.isLearnable = true; }
-
Hi All I have two panel in my form, my 1st panel contains 3 buttons and the 2nd has 2 buttons, 3 textboxes and a label. I need to get all of these controls to save their settings into a file, I tried:
foreach (Control ctrl in this.Controls)
MyFile.ReadLine(ctrl.Text); // For exampleBut "this" has only two controls (My two panels) and I can't see the other controls contained in panels. I know I can use the foreach statement for each of my panels but if I have a panel in panel2? Do you have any idea to solve this using only one loop? Regards.
While (true) { Human.isLearnable = true; }
Use two foreach statements. Like this: foreach (Control oCtrl in this.Controls){ // Do something foreach(Control oCtrl1 in oCtrl.Controls){ // Do something } }
"If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry
-
Use two foreach statements. Like this: foreach (Control oCtrl in this.Controls){ // Do something foreach(Control oCtrl1 in oCtrl.Controls){ // Do something } }
"If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry
It's possible only for two panels. I wont be glad if i have 3 panels in my form and each one contains 4 panels inside... X| however thanks. :)
While (true) { Human.isLearnable = true; }
-
It's possible only for two panels. I wont be glad if i have 3 panels in my form and each one contains 4 panels inside... X| however thanks. :)
While (true) { Human.isLearnable = true; }
In that case you can use conditional recursion by checking if current control has child controls.
"If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry
-
In that case you can use conditional recursion by checking if current control has child controls.
"If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry
Yeah, that's how I'd do it.
-
Hi All I have two panel in my form, my 1st panel contains 3 buttons and the 2nd has 2 buttons, 3 textboxes and a label. I need to get all of these controls to save their settings into a file, I tried:
foreach (Control ctrl in this.Controls)
MyFile.ReadLine(ctrl.Text); // For exampleBut "this" has only two controls (My two panels) and I can't see the other controls contained in panels. I know I can use the foreach statement for each of my panels but if I have a panel in panel2? Do you have any idea to solve this using only one loop? Regards.
While (true) { Human.isLearnable = true; }
Each 'container' has it's own control collection so you have to loop each one of them. The most easiest way is to create a method for listing controls and call this method recursively passing the collection (for example List) as a parameter. Pseudo-code would be something like:
GetControls(List controlList, Control parent) {
foreach (Control ctrl in parent.Controls) {
controlList.Add(ctrl); //or whatever you want to do
GetControls(controlList, ctrl);
}
}The need to optimize rises from a bad design
-
Yes it has but I don't want to have a foreach statement per panel. Thanks
While (true) { Human.isLearnable = true; }
Well then, just find something else to do with your time. If it's not freakin' obvious what you have to do, and that "not wanting to" isn't a viable tack if you want to accomplish your goal, you shouldn't be a programmer. I bet you could find a job sweeping standing water off of sidewalks. Oh wait, that requires a little effort as well. Oh wait! Try just staring off into space. That should keep your feeble excuse for a brain busy.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 -
Yeah, that's how I'd do it.
You guys are wasting your time. He probably thinks "recursion" is having to visit the toilet more than once in a 60-second time frame.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 -
Hi All I have two panel in my form, my 1st panel contains 3 buttons and the 2nd has 2 buttons, 3 textboxes and a label. I need to get all of these controls to save their settings into a file, I tried:
foreach (Control ctrl in this.Controls)
MyFile.ReadLine(ctrl.Text); // For exampleBut "this" has only two controls (My two panels) and I can't see the other controls contained in panels. I know I can use the foreach statement for each of my panels but if I have a panel in panel2? Do you have any idea to solve this using only one loop? Regards.
While (true) { Human.isLearnable = true; }
Ever heard about Recursion ?[^]
Giorgi Dalakishvili #region signature My Articles / My Latest Article[^] / My blog[^] #endregion
-
Ever heard about Recursion ?[^]
Giorgi Dalakishvili #region signature My Articles / My Latest Article[^] / My blog[^] #endregion
-
Hi All I have two panel in my form, my 1st panel contains 3 buttons and the 2nd has 2 buttons, 3 textboxes and a label. I need to get all of these controls to save their settings into a file, I tried:
foreach (Control ctrl in this.Controls)
MyFile.ReadLine(ctrl.Text); // For exampleBut "this" has only two controls (My two panels) and I can't see the other controls contained in panels. I know I can use the foreach statement for each of my panels but if I have a panel in panel2? Do you have any idea to solve this using only one loop? Regards.
While (true) { Human.isLearnable = true; }
Sorry if I'm wasting your time... I'm not an expert like you... Yeah, I know Recursion, I'll use it... Thanx :)
While (true) { Human.isLearnable = true; }
-
An unhandled exception of type 'System.StackOverflowException' occurred in me. :)
Giorgi Dalakishvili #region signature My Articles / My Latest Article[^] / My blog[^] #endregion