使用FlowLayoutPanel进行非常奇怪的情况...
我一直在向我的面板动态添加用户控件。此用户控件的高度为105.如果我的FlowLayoutPanelwidth仅显示1个“列”控件,则它只显示296个控件。其余控件在flowlayoutpanel的底部显示为灰色。如果我加宽flp以允许2“列”控件,我可以看到其中的592个,其余部分在底部变灰。我已经进入并调整了用户控件的大小以使其更短,这在某些方面有效(即当我有两列但不仅仅是1时它可以工作),并且可以继续这种解决方法。
所以,我想我的问题是,为什么FlowLayoutPanel会以这种方式运行?似乎(基于我所看到的)FLP将一次显示多少数据存在限制。
答案 0 :(得分:2)
您的评论只是提醒我,当您向任何容器添加许多控件时,最好这样做:
YourPanel.SuspendLayout();
// populate panel with controls
YourPanel.ResumeLayout(false);
这实际上会阻止容器(面板)在每次添加控件时重新呈现它,直到您完成添加控件。至少,您的面板创建将更加顺畅和快速。不确定这是否可以解决您的问题或避免使用PerformLayout进行黑客攻击。
如果查看Form的设计器文件,您实际上会在InitializeComponent函数中看到这一点。