我想知道该TreeNode
属性NextVisibleNode
是如何在语义上定义的。我注意到它与 a的属性不对应。TreeNode
IsVisible
考虑 aWindows.Forms.Form
持有TreeView
的TreeNode
s 比它可以在其客户区显示的更多(即出现滚动条)。
当尝试使用以下代码仅迭代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
迭代TreeNode
s 的正确子集。
这种行为是NextVisibleNode
有意的还是可能是由于错误?