2015-12-14 45 views
1

將某些控件添加到FlowLayoutPanel時,有什麼方法可以找到哪些控件導致新行中的流程中斷?在FlowLayoutPanel中查找打破流程的控件

for(i=0;i!=100;i++){ 
    var userControl = new MyUserControl(); 
    myFlowLayoutPanel.Controls.Add(userControl); 
} 

這些100 userControls排列成20行5列,所以第一,第五,第15,...,第100個用戶控制導致新線myFlowLayoutPanel斷裂。 我正在尋找一種方法來檢測這些控件。

+0

@SergiiZhevzhyk:我更新了帖子。 – Masoud

+1

爲什麼不按照順序迭代控制並比較'Top'? – Amit

+1

@Amit:當我調整父窗體大小時,控件以不同的方式排列,所以20 X 5沒有固定。 – Masoud

回答

2

不幸的是,沒有任何方法或屬性,這會爲你提供這些信息,但是你可以手工計算的話:

Control prevControl = null; 
foreach (Control control in myFlowLayoutPanel.Controls) 
{ 
    if (prevControl == null || prevControl.Left > control.Left) 
    {   
      // line break 
    } 
    prevControl = control; 
}