treeview为什么不能返回节点总数?

sztony 2004-01-14 01:24:41
treeView1.Nodes.Count;
我用上面语句,为什么不能获得该树的节点总数?
我用下列语句跟踪了一下,发现,只返回1个(其实该树上已经有10多个节点).
this.Text = treeView1.Nodes.Count.ToString();
如果我要获得该树的总节点数,该怎么办?
...全文
148 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangzhu 2004-04-09
  • 打赏
  • 举报
回复
这个方法试试:

private void button3_Click(object sender, System.EventArgs e)
{
count = 0;
NodeCount(this.treeView1.Nodes);
MessageBox.Show(count.ToString());
}
int count ;
private void NodeCount(TreeNodeCollection tnd)
{
foreach ( TreeNode tn in tnd )
{
count += 1;
if ( tn.Nodes.Count != 0 )
{
NodeCount(tn.Nodes);
}
}
}
csxtu 2004-04-09
  • 打赏
  • 举报
回复
TreeView.GetNodeCount( true );
danielrong 2004-01-16
  • 打赏
  • 举报
回复
做个递归吧。。。。肯定要历遍所有的节点的。
984437 2004-01-16
  • 打赏
  • 举报
回复
用 heiguangbao(大头) 的不好,容易造成死循环。
用我的吧。
public static int Search(TreeView tv)
{
if (tv.Nodes.Count <= 0) return null;
TreeNode node = tv.Nodes[0];
TreeNode ParentNode = node;
int items = 1;

while (node != null)
{

if (node.Nodes.Count > 0) //有子节点
{
ParentNode = node;
node = node.Nodes[0];
}
else //没有子节点
{
node = node.NextNode;
while ((node == null) && (ParentNode != null))
{
node = ParentNode.NextNode;
ParentNode = ParentNode.Parent;
}
}
items++;
}

return items;
}
yqydaful 2004-01-16
  • 打赏
  • 举报
回复
同上
heiguangbao 2004-01-15
  • 打赏
  • 举报
回复
private bool Search(TreeNode rtNode,string txt)
{
bool ret=false;

if (rtNode.Nodes.Count!=0)
{
foreach(TreeNode node in rtNode.Nodes)
{
if(node.Text.ToUpper()==txt)
{
tvwDataSource.SelectedNode=node;
ret=true;
break;
}
else
{
ret=Search(node,txt);
if (ret)
{
break;
}
}
}
}
return ret;
}

这就是所谓的第归方法
sztony 2004-01-15
  • 打赏
  • 举报
回复
真是晕呀,
如果这样,那就比DELPHI和VB中的树麻烦多了,
jimh 2004-01-15
  • 打赏
  • 举报
回复
Node.Nodes.Count只能得到当前节点的子节点数目,要得到一个节点下的所有子节点,
需要使用递归算法遍历
cg1120II 2004-01-15
  • 打赏
  • 举报
回复
楼主是想得到所有TREEVIEW的节点还是想得到一个节点的子节点,如果是要得到所有结点,需要遍历TREEVIEW,如果只想得到某个节点的子结点,可以用TreeNode.GetNodeCount得到节点数
OneDotRed 2004-01-15
  • 打赏
  • 举报
回复
可能只能用剃龟吧^_^
没属性能查询node的所有节点数
liduke 2004-01-15
  • 打赏
  • 举报
回复
Node.Nodes.Count只能得到当前节点的数目,如果想要得到全部,得用递归
sztony 2004-01-14
  • 打赏
  • 举报
回复
怎么没人帮我呀?

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧