C# FlowLayoutPanel中的奇怪空白

C# FlowLayoutPanel中的奇怪空白,c#,flowlayoutpanel,C#,Flowlayoutpanel,我在flowlayoutpanel上有很多按钮,然后有文本标签来打破流程。标签前的最后一个按钮和标签本身具有SetFlowBreak。所有的作品都很好,但我不明白的是,为什么文本标签下有这么多空间?如果窗体的大小调整得很窄,只有一列按钮,那么多余的空间就会消失。有人能解释一下如何删除这个空间吗 代码: public Form1() { 初始化组件(); 谢谢你,汉斯!我认为这是一个真正的答案,因为它解决了我的问题。(引用评论) 这是一个bug,同样的bug。额外的空间是下一个标签的高度。解决方法

我在flowlayoutpanel上有很多按钮,然后有文本标签来打破流程。标签前的最后一个按钮和标签本身具有
SetFlowBreak
。所有的作品都很好,但我不明白的是,为什么文本标签下有这么多空间?如果窗体的大小调整得很窄,只有一列按钮,那么多余的空间就会消失。有人能解释一下如何删除这个空间吗

代码:

public Form1()
{
初始化组件();

谢谢你,汉斯!我认为这是一个真正的答案,因为它解决了我的问题。(引用评论)

这是一个bug,同样的bug。额外的空间是下一个标签的高度。解决方法完全相同,只需在标签后添加一个宽度为0的虚拟控件即可。-Hans Passant

因此,首先我删除了真正标签之后的flowbreak:

flowLayoutPanel1.SetFlowBreak(label, true);
然后用下面的代码替换它,神秘的空间消失了

Label dummyLabel = new Label();
dummyLabel.Width = 0;
dummyLabel.Height = 0;
dummyLabel.Margin = new Padding(0, 0, 0, 0);

flowLayoutPanel1.Controls.Add(dummyLabel);
flowLayoutPanel1.SetFlowBreak(dummyLabel, true);

事实上,标签下方的空间只有在你真正靠近时才会消失;我以前可以看到它,即使只有一列按钮。。你是对的。我以前没有注意到这一点。这没有帮助-看起来像一个bug。。这是一个bug,相同的。额外的空间是下一个标签的高度。解决方法完全相同,只需在标签后添加一个宽度为0的虚拟控件。欢迎使用SO.+1发布您问题的答案。我建议您也接受它…谢谢。我会的,但SO不会让我在明天之前接受它。
Label dummyLabel = new Label();
dummyLabel.Width = 0;
dummyLabel.Height = 0;
dummyLabel.Margin = new Padding(0, 0, 0, 0);

flowLayoutPanel1.Controls.Add(dummyLabel);
flowLayoutPanel1.SetFlowBreak(dummyLabel, true);