减少 FlowLayoutPanel 中控件之间的空间
Posted
技术标签:
【中文标题】减少 FlowLayoutPanel 中控件之间的空间【英文标题】:Decrease space between controls in FlowLayoutPanel 【发布时间】:2012-10-22 10:14:09 【问题描述】:如何进一步缩小控件之间的间距? 我已将所有边距和填充设置为 0,但我的控制器之间仍有空间。
这是我得到的空间,所有边距和填充设置为 0。我什至将每个控制器上的边距和填充设置为 0。
为了保持一致性,这里是添加图片框的代码
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)
【问题讨论】:
将每个包含的控件的所有边距都设置为0还不够吗? 我刚试过,它确实减少了空间,但它们之间仍然有一个空间(2像素?) 添加了显示间距的新图片 我仍然很难猜出您使用的是哪个控件,以及您的最终目标是什么,但请看我的回答 - 希望它能解决问题。 【参考方案1】:您没有在添加的图片框上设置 Margin 属性。默认值为 3,3,3,3。添加这行代码来解决问题:
newPic.Margin = New Padding(0)
【讨论】:
【参考方案2】:每个控件处理边距的方式都不同,即使使用标准控件也是如此。看看这个例子:
请注意,Button
在其周围保留了一些空间,而 TextBox 占据了所有内容。您可能会问为什么它们之间有 2 个像素,您可以清楚地看到。为此 - 请复制/粘贴到 Paint 并放大。这 2 个像素实际上是边框,这就是绘制控件的方式。我确信Buttons
也有边框,但即使放大也很难在视觉上证明是正确的。
如果你想改变它,你需要创建一个自定义控件并覆盖它的绘制方式,即手动从它上剪下边框或类似的东西。但我不建议这样做,以保持 UI 一致。
【讨论】:
以上是关于减少 FlowLayoutPanel 中控件之间的空间的主要内容,如果未能解决你的问题,请参考以下文章