Flow Layout Panel上的边距不会产生预期的行为

时间:2017-07-20 15:46:27

标签: c# winforms flowlayoutpanel

上下文 我使用flowlayoutpanel动态地向表单添加控件。

问题:为什么在我使用下面的代码时设置每个控件的边距,而不是更改控件在附加图像中的显示方式?

思想: 使用下面的代码应该强制标签和文本框彼此相邻。  据我所知,边距是影响flowlayoutpanel中布局的每个项目之间距离的因素。

Flowlayoutpanel margins

// Create the control instances. 
var textBox = new TextBox();
var nameLabel = new Label();

// Setup options for controls.
textBox.Size = new System.Drawing.Size(175, 20);
textBox.Margin = new Padding(0, 0, 0, 0);
nameLabel.Text = parameter.ParameterName;
nameLabel.Margin = new Padding(0, 0, 0, 0);

// Add controls to the flow panel. 
flowLayoutPanel1.Controls.Add(nameLabel);
flowLayoutPanel1.Controls.Add(textBox);

Rerferences:

Align dynamically added controls horizontally and vertically within a control in c# winforms

Adjusting spacing between usercontrols in a flowLayoutPanel

setting more space between controls in a flowLayout

1 个答案:

答案 0 :(得分:1)

您的标签没有尺寸,因此其高度属性比您想象的要大。尝试更改标签的backcolor属性以查看它占用的空间。

您可以设置尺寸:

nameLabel.Size = new Size(175, 16);

或更改路线:

nameLabel.TextAlign = System.Drawing.ContentAlignment.BottomLeft;

或两者兼而有之。