我有一个包含三个主要组件的表单:
- 一个FlowPanel,设置为Align to Client
- 第二个FlowPanel,设置为Align to Bottom
- 一个StatusBar,设置为Align to Bottom。
一切都开始看起来很好。但是,对齐到底部的FlowPanel也设置为AutoSize。它包含一个可以自行折叠的面板。内部面板包含用户可以决定隐藏的摘要信息。这会将FlowPanel的大小降低到非常小的尺寸,但不完全消失。仍然有一个按钮,用户可以重新展开摘要面板。
问题出现在面板重新展开时,导致FlowPanel增长。此时,状态栏和FlowPanel的顺序被颠倒了。它们仍然都设置为对齐底部,但现在状态栏在我的FlowPanel上面。
我可以在测试应用程序中复制此问题,而无需折叠面板,只需在表单上放置一个按钮以查看底部流程面板的高度。如果高度增加,则顺序会改变。如果减少,则一切保持原样。我的测试表单中唯一的代码是:
FlowPanel2.Height := FlowPanel2.Height * 2;
我也测试了使用普通的TPanel作为底部面板,而不是FlowPanel,结果相同。
有什么想法可以解决这个问题并防止它发生吗?