gpt4 book ai didi

c# - TreeNode.NextVisibleNode 损坏了吗?

转载 作者:太空宇宙 更新时间:2023-11-03 13:52:12 25 4
gpt4 key购买 nike

我想知道 TreeNode 属性 NextVisibleNode 是如何在语义上定义的。我注意到它TreeNodeIsVisible 属性相对应。

考虑一个 Windows.Forms.Form 和一个 TreeView 持有比它可以在其客户区显示更多的 TreeNode(即滚动栏出现)。

当尝试使用以下代码仅迭代在客户区中可见的那些 TreeNode 时...

int numVisible = 0;

for (TreeNode node = treeView.TopNode;
node != null;
node = node.NextVisibleNode)
{
// Do something...
++numVisible;
}

...实际上 所有 TreeNode低于第一个可见 TreeNode 被计算在内。尽管 TopNode 按预期工作,但必须将 for 的条件扩展为 node != null && node.IsVisible 才能迭代在 TreeNode 的正确子集上。

NextVisibleNode 的这种行为是有意为之还是可能是由于错误?

最佳答案

看起来它要么是“按设计”要么是一个错误。但听起来您检查 IsVisible 的方法是可行的方法:

What does TreeNode.NextVisibleNode have to return

也许 NextVisibleNode 指的是展开状态(即未展开的子节点不算作可见),而不是实际的 IsVisible 属性。这就是我在有限测试中看到的行为。这似乎是它与 NextNode

的唯一区别

关于c# - TreeNode.NextVisibleNode 损坏了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13418402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com