在使用TableLayoutPanel的Windows窗体应用程序中,我们通过函数
获得所有控件Control control in tableLayoutPanel1.Controls
如果我不在表单中使用TableLayoutPanel,有没有办法获取控件?
答案 0 :(得分:0)
您可以创建如下的扩展方法:
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
答案 1 :(得分:0)
如果没有将控件放入TableLayoutPanel
,那么它们很可能属于主窗体。所以ypu可以像这样遍历它们:
foreach(Control control in this.Controls)
{
//do somthing with the controls
}