我有 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 放在 Panel 中,AutoScroll 属性设置为 true
  • AutoSizeFlowLayoutPanel 属性设置为 true
  • WrapContentFlowLayoutPanel 属性设置为 true(默认)
  • AutoScrollFlowLayoutPanel 属性设置为 false(默认)
  • 添加控件时,您可以使用 SetFlowBreak 来中断您需要的控件流。

  • 截图

    c# - 多行自动调整大小可滚动 FlowLayoutPanel-LMLPHP

    代码
    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 处打破了流程。

    关于c# - 多行自动调整大小可滚动 FlowLayoutPanel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32564463/

    10-13 06:24