我有一个包含三个主要组件的表单:
- 设置为与客户端对齐的 FlowPanel
- 第二个 FlowPanel 设置为对齐底部
- 设置为对齐底部的状态栏。
一切开始看起来都很棒。但是与底部对齐的 FlowPanel 也设置为 AutoSize。它包含一个可以自行折叠的面板。内部面板包含用户可以决定隐藏的摘要信息。这会将 FlowPanel 的大小减小到非常小的大小,但并未完全消失。还有一个按钮,用户可以在其中重新展开摘要面板。
当面板重新展开导致 FlowPanel 增长时,问题就出现了。那时状态栏和 FlowPanel 的顺序是相反的。它们仍然设置为底部对齐,但现在状态栏位于我的 FlowPanel 上方。
我可以在没有折叠面板的测试应用程序中复制它,只需将按钮放在表单上即可查看底部流面板的高度。如果高度增加,顺序会改变。如果它减少,那么一切都保持相同的顺序。我的测试表格中唯一的代码是:
FlowPanel2.Height := FlowPanel2.Height * 2;
我还测试了这个底部面板是一个普通的 TPanel,而不是一个具有相同结果的 FlowPanel。
关于为什么会发生这种情况以及如何防止它的任何想法?