流布局面板上的边距未产生预期的行为
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;
或两者。
上下文: 我正在使用 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;
或两者。