9

我在FlowLayoutPanel. 我需要这个面板自动调整大小,但只能垂直调整。

这是可能的,如果是这样,我该如何实现它?

4

4 回答 4

15

很简单,添加一个控件类型的事件添加:

private void flowLayoutPanel1_ControlAdded(object sender, ControlEventArgs e)
{
    if (flowLayoutPanel1.Controls.Count % 10 == 0)
        flowLayoutPanel1.SetFlowBreak(e.Control as Control, true);
}

AutoSize = true

flowdirection = LeftToRight

于 2013-04-08T13:50:09.473 回答
3

也许

FlowLayoutPanel1.WrapContents = False;
FlowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;

会帮助你。

于 2020-06-19T10:32:49.927 回答
1

我确实从面板中设置了大小。例子:

int newHeight= listImages.Count/10 * 100;
               flowLayoutPanel1.Size = new Size(1143, newHeight);

这个对我有用。谢谢大家

于 2013-04-08T13:53:29.877 回答
0

这可能看起来像一个丑陋的解决方案,但它适用于我:

  1. 将面板的当前宽度存储在变量中;
  2. 将 AutoSize 模式设置为 true;
  3. 执行需要调整面板大小的操作;
  4. 从变量中恢复前一个面板的宽度。

                int i = _panel1.Width;
                _panel1.AutoSize = true;
                _panel1.AutoSizeMode = AutoSizeMode.GrowOnly;
                /*some action going on here*/
                _panel1.AutoSize = false;
                _panel1.Size = new Size(_panel1.Width, 80);
    
于 2019-07-06T23:10:02.910 回答