如何查找按 flowlayoutpanel 排列的列和行数。
FlowLayoutPanel panelstandard = new FlowLayoutPanel();
panelstandard.Size = new Size(1130,150);
panelstandard.Location = new Point(20, 250);
panelstandard.BorderStyle = BorderStyle.FixedSingle;
panelstandard.FlowDirection = FlowDirection.LeftToRight;
你可以自己计算:
int row = 0;
int column = -1;
int left = panelstandard.Controls[0].Left;
foreach(Control control in panelstandard.Controls)
{
// as soon as wrap occurs
if(control.Left < left)
{
// new row
row++;
column = 0;
}
else
column++;
left = control.Left + control.Width; // next control expected left
// here you know [row; column] of the control
}
// here you know total rows and columns
这不关心控制Margin
,如果您使用 Dock
和/或 Anchor
,则可能不起作用,但应该在一般情况下有效