FlowLayoutPanel只在垂直方向自动调整大小

本文关键字:调整 方向 垂直 FlowLayoutPanel | 更新日期: 2023-09-27 18:08:07

我在FlowLayoutPanel内动态加载图像。我需要这个面板自动调整大小,但只能垂直调整。

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

FlowLayoutPanel只在垂直方向自动调整大小

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

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

set AutoSize = true

set flowdirection = LeftToRight

可能

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

我确实动态地设置了panel的Size。例子:

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

这对我有用。谢谢所有的

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

  1. 将面板当前宽度存储在变量中;
  2. 设置自动大小模式为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);