FlowLayoutPanel只在垂直方向自动调整大小
本文关键字:调整 方向 垂直 FlowLayoutPanel | 更新日期: 2023-09-27 18:08:07
我在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);
这对我有用。谢谢所有的
这可能看起来像一个丑陋的解决方案,但它适用于我:
- 将面板当前宽度存储在变量中;
- 设置自动大小模式为true;
- 执行需要调整面板大小的操作;
-
从变量中恢复前一个面板的宽度。
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);