Pio*_*nda 5 c# flowlayoutpanel windows-forms-designer winforms
我在父容器中有流布局面板停靠(填充)。父容器 DockStyle 设置为 Top。此外,我将流布局面板的 FlowDirection 属性设置为 LeftToRight,并将两个容器的 AutoSize 属性设置为 True。流布局面板的主要功能是保持动态添加的按钮。
创建按钮的代码
Button productButton = new Button();
productButton.AutoSize = true;
productButton.AutoEllipsis = false;
productButtonPanel.Controls.Add(productButton);
Run Code Online (Sandbox Code Playgroud)
有足够的空间在一行中保留 10-12 个按钮,并且 FlowLayoutPanel 做得很好。它将所有新按钮保持在一行中。问题是 FlowLayoutPanel 每次添加新 Button 时都会(垂直)调整大小,即使不需要额外的空间(“新按钮行”)。
也许AutoSizeMode = AutoSizeMode.GrowAndShrink;会解决你的问题。例如
Form f = new Form();
Panel parent = new Panel { Dock = DockStyle.Top, BackColor = Color.Blue, AutoSize = true };
FlowLayoutPanel p1 = new FlowLayoutPanel { FlowDirection = System.Windows.Forms.FlowDirection.LeftToRight };
p1.BackColor = Color.Red;
p1.AutoSize = true;
p1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
Button b1 = new Button { Text = "Button1", AutoSize = true, AutoEllipsis = false };
p1.Controls.Add(b1);
b1.Click += delegate {
Button b2 = new Button { Text = "Button" + (p1.Controls.Count + 1), AutoSize = true, AutoEllipsis = false };
p1.Controls.Add(b2);
};
parent.Controls.Add(p1);
f.Controls.Add(parent);
Application.Run(f);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6497 次 |
| 最近记录: |