2015-11-14 24 views
0

在Windows窗體應用程序,使用TableLayoutPanel中我們得到與功能的所有控制如何從不使用TableLayoutPanel的窗體獲取控件?

Control control in tableLayoutPanel1.Controls 

有沒有辦法得到控制,如果我沒有在我的表單中使用TableLayoutPanel中?

+0

你是什麼意思*獲取控制,如果我不使用TableLayoutPanel在我的表單*? –

回答

0

如果控件不放入TableLayoutPanel,則它們可能是在主要形式本身。所以ypu可以像這樣遍歷它們:

foreach(Control control in this.Controls) 
{ 
    //do somthing with the controls 
} 
+0

感謝您的回答,@alexjolig。有用。 – red

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

相關問題