1

現在FlowLayoutPanelにある行と列を簡単に検索する方法があるのか​​、それとも手動計算が必要なのか疑問に思っていますか?

4

3 に答える 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 に答える