多行自动调整大小的可滚动 FlowLayoutPanel

Multi-Row Autosize Scrollable FlowLayoutPanel

我有 50 张图片。我需要在 FlowLayoutPanel 中添加这些图像,换行后的第一行有 30 张图像,第二行有 20 张图像。所以我还需要在控件上显示滚动条。

我将视频分成帧(图像)并显示在 FlowLayoutPanel 中。当我上传第一个视频时,下面是设置图像的代码:

for (i = 1; i < len - 1; i++)
{
    ImagePanel mybt = new ImagePanel(storagePath + words[0] + "_" + 
                                     i + ".jpg", words[0] + "_" + i + ".jpg");
    flowLayoutPanel1.Controls.Add(mybt);
}

之后,当我上传第二张图片时,我想像第一行一样显示图片,我们在休息后有第一张视频图片,我需要显示第二张视频上传图片。 如果有人知道怎么可能。

要获得如屏幕截图中所示的结果:

  • 将你的 FlowLayoutPanel 放在 PanelAutoScroll 属性 设置为 true
  • FlowLayoutPanelAutoSize 属性 设置为 true
  • FlowLayoutPanelWrapContent 属性 设置为 true(默认)
  • FlowLayoutPanelAutoScroll 属性 设置为 false(默认)
  • 添加控件时,您可以使用 SetFlowBreak 中断所需控件的控件流。

截图

代码

private void button1_Click(object sender, EventArgs e)
{
    for (int i = 0; i < 20; i++)
    {
        var btn = new Button() { Text = i.ToString() };
        if (i == 5 || i==15 )
            this.flowLayoutPanel1.SetFlowBreak(btn, true);
        this.flowLayoutPanel1.Controls.Add(btn);
    }
}

这里我打破了流程,在 5 和 15。