在FlowLayoutPanel中减小控件之间的间距

10
如何进一步减少控件之间的间距?我已将所有边距和填充设置为0,但是我的控件之间仍然有空间。
这是我在所有边距和填充设置为0时获得的间隔。我甚至将每个控制器的边距和填充设置为0。
为了保持一致性,这里是添加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)

1
如果您将每个包含的控件的所有边距设置为0,这难道不足够吗? - Victor Zakharov
我刚试了一下,确实减小了间距,但它们之间仍然有一个空隙(2像素?)。 - Ervin
新增了一张图片,显示间距。 - Ervin
我仍然很难猜测您正在使用哪些控件,以及您的最终目标是什么,但请看我的答案 - 希望它能澄清事情。 - Victor Zakharov
2个回答

15

您添加的图片框未设置 Margin 属性。默认值为 3,3,3,3。添加以下代码即可解决问题:

  newPic.Margin = New Padding(0)

4
每个控件处理边距的方式都不同,即使是标准控件也是如此。看看这个例子:
注意,按钮(Button)周围保留了一些空间,而文本框(TextBox)则占用所有空间。你可能会问为什么它们之间有2像素的间隔,但实际上这里有一个边框,可以在放大后复制/粘贴到画图软件中查看。我相信按钮(Button)也有边框,但即使放大后也很难通过视觉来证明。
如果您想更改这种情况,您需要创建自定义控件并重写其绘制方式,即手动从中剪切边框或类似操作。但我不建议这样做,以便保持界面的一致性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接