我正在运行Lazarus 0.9.30.2。

我有一个有tpagechontrol的tform。在TPAGeControl中有一系列TTABEETS。在运行时,TTABEETS的顺序不同于设计时间(见图)。

设计时间中的顺序是我想在运行时看到的,至少在第一次显示表单时。为什么订单在运行时会发生变化,有没有办法控制这个?

有帮助吗?

解决方案

@tlama是正确的,这与Windows选项卡控制在多行视图中的行为方式相关。您正在观察的行为与选择用于多行选项卡的方式相关。选择选项卡时,它始终显示在底行中,因为视觉提示表示选择了哪个选项卡只能在底行中真正工作。

给定该约束控制在修改所选选项卡时,控制只需重新排列行标记。对用户来说令人惊讶。良好的UI设计永远不会有UI元素更改位置。 显然,这里发生的事情是,当首先显示形式时,在运行时发生重新排列,并且无论出于何种原因,这导致了从设计时间排列的不同布置。鉴于用户可以通过选择它们来按任何顺序排列行,我不确定你应该担心行中出现的顺序。

如果您在迫使表单首次显示时迫使特定安排的死亡设置,您可以将像素中的代码添加到表单的OnCreate处理程序:

PageControl1.ActivePage := TabSheet9;
PageControl1.ActivePage := TabSheet5;
PageControl1.ActivePage := TabSheet1;
.

UI设计的最佳实践是避免多行选项卡控件,我敦促您尝试重新设计您的UI。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top