2015-12-14 2 views
1

Когда добавляются некоторые элементы управления в FlowLayoutPanel, есть ли способ найти, какие элементы управления вызывают перерыв потока в новой строке?Найти элементы управления, которые разбивают поток в FlowLayoutPanel

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

Эти 100 userControls расположены в 20 строк и 5 столбцов, так что 1-й, 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; 
} 
Смежные вопросы