C# 查找FlowLayoutPanel的行和列
只是想知道是否有一种方法可以轻松查找FlowLayoutPanel中当前的行和列,或者是否需要手动计算?需要手动计算。下面是一个使用linq计算高度的示例:C# 查找FlowLayoutPanel的行和列,c#,.net,flowlayoutpanel,C#,.net,Flowlayoutpanel,只是想知道是否有一种方法可以轻松查找FlowLayoutPanel中当前的行和列,或者是否需要手动计算?需要手动计算。下面是一个使用linq计算高度的示例: var heightNeeded = flowLayoutPanel1.Controls.OfType<Control>() .Max(x => x.Location.Y + x.Height) + 7; var heightNeeded=flowLayoutPanel1.Controls.OfType() .M
var heightNeeded = flowLayoutPanel1.Controls.OfType<Control>()
.Max(x => x.Location.Y + x.Height) + 7;
var heightNeeded=flowLayoutPanel1.Controls.OfType()
.Max(x=>x.Location.Y+x.Height)+7;
此线程很旧,但我今天才有此要求,GetFlowBreak未能在一个控件上返回true,导致flow面板中断到新行。我不知道为什么,我没有时间去弄清楚。这适用于FlowDirection=LeftToRight
坦白地说,我没有时间写这篇文章,但我无论如何都是。下面是一个简单的扩展方法,用于计算行数:
public static int GetRowCount(this FlowLayoutPanel flowPanel)
{
int rows = 1;
int rowWidth = flowPanel.ClientRectangle.Width;
foreach (Control control in flowPanel.Controls)
{
rowWidth -= control.Width;
if (rowWidth > 0)
{
continue;
}
rows += 1;
rowWidth = flowPanel.ClientRectangle.Width;
}
return rows;
}
使用:
嗯
CTFlowLayoutPanel没有列或行。。。你是说一个TableLayoutPanel吗?不,我正在使用一个flow布局面板,添加大小相同的控件,它们以行和列的形式出现。我添加的控件是带有图片框和标签的自定义控件,但是边界框只是一个正方形,它们的大小都相同。啊,好的,FlowLayoutPanel中的子控件看起来是行和列,但是面板从左到右、从上到下排列它们。您需要手动计算…好的,不用担心,谢谢您的帮助!
int rows = ChoiceFlow.GetRowCount();