减少FlowLayoutPanel中控件之间的空间

时间:2012-11-01 18:51:19

标签: vb.net vb.net-2010 flowlayoutpanel

如何进一步减少控件之间的空间? 我已将所有边距和填充设置为0,但我的控制器之间仍有空间。

flow layout properties

这是我得到的空间,所有边距和填充设置为0.我甚至将每个控制器上的边距和填充设置为0.

new spacing

为了保持一致,这里是添加PictureBoxes的代码

Dim newPic As PictureBox = New PictureBox()
newPic.Image = p.Image
newPic.Size = New System.Drawing.Size(New Point(p.Size.Width * 2, 
                                                p.Size.Height * 2))
newPic.SizeMode = p.SizeMode
laytt.SetToolTip(newPic, ttstring)
AddHandler newPic.Click, AddressOf LayoutComponent_Clicked 

LayoutFlowLayout.Controls.Add(newPic)

2 个答案:

答案 0 :(得分:14)

您没有在添加的图片框中设置Margin属性。默认值为3,3,3,3。添加以下代码来解决问题:

  newPic.Margin = New Padding(0)

答案 1 :(得分:4)

即使使用标准控件,每个控件都会以不同方式处理边距。看看这个例子:

enter image description here

请注意,Button会在其周围留出一些空间,而TextBox会占用所有内容。您可能会问为什么它们之间有2个像素,您可以清楚地看到它们。为此 - 请复制/粘贴到Paint并放大。这2个像素实际上是边框,这是控件的绘制方式。我确信Buttons也有边框,但即使放大也很难在视觉上进行辩护。

如果你想改变它,你需要创建一个自定义控件并覆盖它的绘制方式,即手动切割它或类似的边框。但我不建议这样做,以保持UI的一致性。