上下文 我使用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);
Rerferences:
Align dynamically added controls horizontally and vertically within a control in c# winforms
答案 0 :(得分:1)
您的标签没有尺寸,因此其高度属性比您想象的要大。尝试更改标签的backcolor属性以查看它占用的空间。
您可以设置尺寸:
nameLabel.Size = new Size(175, 16);
或更改路线:
nameLabel.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
或两者兼而有之。