現在FlowLayoutPanelにある行と列を簡単に検索する方法があるのか、それとも手動計算が必要なのか疑問に思っていますか?
3280 次
3 に答える
0
このスレッドは古いですが、今日要件があり、フロー パネルが新しい行に分割される原因となったコントロールで GetFlowBreak が true を返すことができませんでした。理由がわからず、それを理解する時間がありませんでした。これは、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;
}
使用する:
int rows = ChoiceFlow.GetRowCount();
チッ!
CT
于 2019-11-12T03:05:53.250 に答える
-2
linq を使用して高さを計算する例を次に示します。
var heightNeeded = flowLayoutPanel1.Controls.OfType<Control>()
.Max(x => x.Location.Y + x.Height) + 7;
于 2014-10-24T20:44:19.703 に答える