首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VirtualTreeView:检查节点是否可见

VirtualTreeView:检查节点是否可见
EN

Stack Overflow用户
提问于 2012-03-20 16:14:51
回答 2查看 2.1K关注 0票数 4

如何使用VirtualTreeView组件检查节点是否在屏幕上可见?如下所示:

代码语言:javascript
复制
if not Grid.NodeVisible (Node) then
   Grid.ScrollIntoView (Node, True);

如果节点不可见,则节点应居中;如果节点可见,则节点应保持在当前位置。

注意,我说的不是节点的可见标志,而是屏幕上的活跃度。在我的例子中,IsVisible属性总是返回True

EN

回答 2

Stack Overflow用户

发布于 2012-03-20 16:42:53

我认为最接近的是GetDisplayRect()方法:

根据滚动、展开状态等确定给定节点覆盖的客户端坐标。如果找不到给定节点(因为其父节点之一已折叠或不可见),则返回一个空矩形。

不确定在节点“可见但看不见”的情况下它会返回什么--您可能需要编写帮助函数来检查VT的客户端矩形内是否返回了rect……

票数 3
EN

Stack Overflow用户

发布于 2012-04-06 07:30:58

IsVisible属性仅在节点是否如您所发现的那样被隐藏时才返回。发现节点是否在屏幕上的唯一方法是使用ain建议的GetDisplayRect,然后根据树视图的客户端矩形对其进行测试。

但是,如果我理解正确的话,VirtualTreeView的SelectionOption中的toCenterScrollIntoView选项将为您提供所需的行为,而不必测试节点是否在可见区域中。

ie(C++):

代码语言:javascript
复制
TreeView->TreeOptions->SelectionOptions =
TreeView->TreeOptions->SelectionOptions << toCenterScrollIntoView ;
...
ScrollIntoView(Node);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9783344

复制
相关文章

相似问题

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