如何遍历treeview
我用的是
foreach(TreeNode node in treeView1.Nodes)
{
}
但只能显示根结点,是不是树必须打开才行?还有没有更好的办法?
问题点数:0、回复次数:9Top
1 楼zx197093(流水无香)回复于 2003-12-02 13:25:55 得分 0
请高手回答Top
2 楼brightheroes(在地狱中仰望天堂)回复于 2003-12-02 13:28:54 得分 0
search(TreeNode tn)
{
if(tn.Node.Count != 0)
{
foreach(TreeNode node in treeView1.Nodes)
{
search(node);
}
}
}
Top
3 楼brightheroes(在地狱中仰望天堂)回复于 2003-12-02 13:29:43 得分 0
递归遍历
调用如下
foreach(TreeNode tn in this.treeView1)
{
search(tn);
}Top
4 楼TeaBall(茶包)回复于 2003-12-02 13:30:41 得分 0
楼主说错了吧?应该是遍历TreeView里边的TreeNode才对。
做法就像brightheroes(闭关)写的那样,用递归就能找出所有节点。Top
5 楼dahuzizyd(你就是我心中的女神)回复于 2003-12-02 13:31:25 得分 0
void GetAllNodeText( TreeNodeCollection tnc )
{
foreach ( TreeNode node in tnc )
{
if ( node.Nodes.Count != 0 )
GetAllNodeText(node.Nodes);
comboBox1.Items.Add(node.Text);
}
}Top
6 楼hgknight(江雨.net)回复于 2003-12-02 13:47:30 得分 0
http://search.csdn.net/expert/topic/52/5202/2003/3/13/1525202.htmTop
7 楼zhengguoc(爱之海洋)回复于 2003-12-02 13:49:41 得分 0
不是的,树是分层的,你的代码当然只能访问根结点了。
应该这样:
public TreeNode FindNode(TreeNode tn)
{
TreeNode TempTn;
if ( tn.Nodes==null )
return null;
if(tn.text == "kk")
return tn;
for (int i=0;i<tn.Nodes.Count;i++)
{
TempTn=FindNode(tn.Nodes[i])
if (TempTn != null)
return TempTn;
}
return null;
}
调用
FindNode(treeView1.nodes[0]);
功能: 遍历树,查找树结点内容为kk的结点,并返回。Top
8 楼bankliu(水岸)回复于 2003-12-02 14:00:49 得分 0
一个笨法:(但是可以自己控制遍历的层数阿!)
foreach(TreeNode node0 in treeView1.Nodes)
{
foreach(TreeNode node1 in node0.Nodes)
{
....
}
}
Top




