在Windows窗體應用程序,使用TableLayoutPanel中我們得到與功能的所有控制如何從不使用TableLayoutPanel的窗體獲取控件?
Control control in tableLayoutPanel1.Controls
有沒有辦法得到控制,如果我沒有在我的表單中使用TableLayoutPanel中?
在Windows窗體應用程序,使用TableLayoutPanel中我們得到與功能的所有控制如何從不使用TableLayoutPanel的窗體獲取控件?
Control control in tableLayoutPanel1.Controls
有沒有辦法得到控制,如果我沒有在我的表單中使用TableLayoutPanel中?
如果控件不放入TableLayoutPanel
,則它們可能是在主要形式本身。所以ypu可以像這樣遍歷它們:
foreach(Control control in this.Controls)
{
//do somthing with the controls
}
感謝您的回答,@alexjolig。有用。 – red
您可以創建類似下面的擴展方法:
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在我的表單*? –