布局控件 FlowLayoutPanel

布局控件通常以 LayoutPanel 为后缀。

FlowLayoutPanel 是流布局控件,放置在它内部的子控件会按照流水方式自动排列,可以横向排列也可以纵向排列。

基本使用

在工具箱中找到 FlowLayoutPanel,拖动到窗体上。可以将其 Dock 属性设为 Fill 使其占满父容器。

此时向其中拖动其他控件(如 Button、Label 等),控件会自动按照流水方向依次排列。

设置排列方向

通过设置 FlowDirection 属性可以改变流水方向:

值说明
LeftToRight从左到右排列(默认)
TopDown从上到下排列
RightToLeft从右到左排列
BottomUp从下到上排列
this.flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;Code language: JavaScript (javascript)

设置为 TopDown 后,内部控件会从上往下依次排列。

换行控制

属性说明
WrapContents是否允许换行/换列,设为 false 则单行/单列显示不换行
this.flowLayoutPanel1.WrapContents = false; // 禁止换行Code language: JavaScript (javascript)

布局控件嵌套

布局控件可以嵌套使用,例如在 FlowLayoutPanel 内部再放入一个 FlowLayoutPanel,实现更复杂的界面布局。

FlowLayoutPanel outer = new FlowLayoutPanel();
outer.Dock = DockStyle.Fill;
outer.FlowDirection = FlowDirection.LeftToRight;

FlowLayoutPanel inner = new FlowLayoutPanel();
inner.FlowDirection = FlowDirection.TopDown;
inner.Size = new Size(120, 200);

inner.Controls.Add(new Button() { Text = "按钮1", Width = 100 });
inner.Controls.Add(new Button() { Text = "按钮2", Width = 100 });

outer.Controls.Add(inner);
outer.Controls.Add(new Label() { Text = "右侧内容", AutoSize = true });

this.Controls.Add(outer);Code language: JavaScript (javascript)

常用属性

属性说明
FlowDirection子控件的排列方向
WrapContents是否自动换行
Dock停靠方式
Padding内边距
AutoScroll内容超出时是否显示滚动条

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注