2012-08-14 27 views
0

根據問題,我的表單上有兩個面板,一個名爲leftPanel,另一個名爲rightPanel。這些控制我的表單上的兩列布局。如何加入兩個控制集合以用於foreach語句

我也有摺疊/展開這些面板內的組框,我希望遍歷每一個刷新佈局,導致它們在調整大小時在對方下方捕捉。

這裏是我的代碼:

private void RefreshLayout() 
    { 
     int rollingTopLeft = grpiAddressDetails.Top + grpiAddressDetails.Height + 10; 
     int rollingTopRight = grpiBranding.Top + grpiBranding.Height + 10; 
     foreach(Control temp in leftPanel.Controls && rightPanel.Controls) 
     { 
      if (temp is GroupBox) 
      { 
       if (!(temp.Name.Contains("grpi"))) // Top group boxes have 'i' as the 4th character in their name. 
       { 
        if (temp.Parent == leftPanel) 
        { 
         temp.Top = rollingTopLeft; 
         rollingTopLeft += temp.Height + 10; 
        } 
        else if(temp.Parent == rightPanel) 
        { 
         temp.Top = rollingTopRight; 
         rollingTopRight += temp.Height + 10; 
        } 
       } 
      } 
     } 
    } 

這是我需要加入收藏線路:

foreach(Control temp in leftPanel.Controls && rightPanel.Controls) 

我意識到& &不工作,還試圖控制.Concat但控件集合似乎沒有此功能。 希望一切都清楚!

回答

11
var allControls = leftPanel.Controls.Cast<Control>().Concat(rightPanel.Controls.Cast<Control>()); 
foreach(Control temp in allControls) 
{ 
    //... 
} 
+0

太棒了!謝謝:) – rbuddicom 2012-08-14 14:31:28

+0

使用'.Cast '需要什麼? – 2014-10-07 17:56:11