流布局面板上的边距未产生预期的行为

Margins on Flow Layout Panel not Producing Expected Behavior

上下文: 我正在使用 flowlayoutpanel 将控件动态添加到表单。

问题:为什么我使用下面的代码在每个控件上设置边距,却没有改变我的控件在附加图像中的显示方式?

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

// 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);

参考文献:

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

您的标签没有尺寸,因此它的高度 属性 比您想象的要大。尝试更改标签的背景色 属性 以查看它占用了多少 space。

您可以设置尺寸:

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

或更改对齐方式:

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

或两者。