我想知道该TreeNode属性NextVisibleNode是如何在语义上定义的。我注意到它与 a的属性不对应。TreeNodeIsVisible
考虑 aWindows.Forms.Form持有TreeView的TreeNodes 比它可以在其客户区显示的更多(即出现滚动条)。
当尝试使用以下代码仅迭代TreeNode客户区域中可见的那些 s 时...
int numVisible = 0;
for (TreeNode node = treeView.TopNode;
node != null;
node = node.NextVisibleNode)
{
// Do something...
++numVisible;
}
...实际上所有 TreeNode低于第一个可见的 sTreeNode都被计算在内。尽管TopNode按预期工作,但必须扩展for' 条件以node != null && node.IsVisible迭代TreeNodes 的正确子集。
这种行为是NextVisibleNode有意的还是可能是由于错误?