首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何滚动火猴TListBox而不捕获其控件中的焦点?

问如何滚动火猴TListBox而不捕获其控件中的焦点?
EN

Stack Overflow用户
提问于 2017-09-15 16:09:31
回答 1查看 785关注 0票数 3

我有一个TListBox,在每个项中都有控件,例如TEdit、TComboBox、TSwitch等,它们对齐了右边。这个列表中有大约20个项目,因此它扩展到屏幕之外,因此用户需要滚动(通过滑动手指)才能到达底部。

问题是,即使是在一个快速的手势,如果用户一开始在这些控件上滑动他们的手指,该控件的焦点和列表不滚动。目前,向上或向下滚动的唯一方法是滑动列表左侧的手指,在列表中没有任何控件。我可以禁用HitTest或CanFocus,但那样的话,即使用户真的想点击它,该控件也永远得不到焦点。

如何允许用户在这些控件上上下滑动以滚动列表,而不需要该控件的焦点?

EN

回答 1

Stack Overflow用户

发布于 2021-03-23 14:03:43

我也有过同样的问题。

为了使用TListBox来解决这个问题,我使用了一个带有内部布局的TVertScrollBox。

每个控件都与顶部对齐,为了使其工作,我需要一个来自:https://github.com/DelphiWorlds/KastriFree/tree/master/Demos/VKVertScrollbox的https://github.com/DelphiWorlds/KastriFree/tree/master/Demos/VKVertScrollbox

这样做,您将有一个可滚动的组件列表,在那里您可以滑动您的手指,并看到它的移动。

此外,为了避免在滑动时对每个组件输入和getFocus,您可以在每个组件上使用一个助手来通过覆盖MouseDown、MouseMove和MouseUp来捕捉移动,并防止在移动时进入重写doEnter (也是过大的)(捕捉MouseMove方法)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46243737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档