2015-12-14 16 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; 
}