Вы можете создать метод расширения вроде следующего:
public static class ControlExtensions
{
public static IEnumerable<Control> GetAllControls(this Control containerControl)
{
var controls = Enumerable.Empty<Control>();
controls = controls.Concat(containerControl.Controls.Cast<Control>());
foreach (Control control in containerControl.Controls)
{
controls = controls.Concat(control.GetAllControls());
}
return controls;
}
}
И использовать его как это:
foreach (Control c in theForm.GetAllControls())
{
Debug.WriteLine(c.Name);
}
обратите внимание на то метод GetAllControls может быть использован с любым Control
, а не только с Form
Что вы подразумеваете под * получить контроль, если я не использую TableLayoutPanel в моей форме *? –