刚才发过一次相同的帖,死活找不到了。解决的话,那个帖子的分也一并给了。
已知某节点的层数node_level,和该节点的值node_key,同一层不允许有重复值的节点。请问如何定位到该节点,即tmp_node:=????最好给出代码,多谢援手!

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3089/3089406.xml?temp=.780575上次法的帖子,浏览找不到了:(
      

  2.   

    遍历吧
    for i:=0 to tv.items.count-1 do if tv.items[i].
      

  3.   

    for i := 0 to TreeView1.Items.Count - 1 do
        if TreeView1.Items[i].Text = node_key then
        begin
          // Your Code;
        end;
      

  4.   

    for i := 0 to TreeView1.Items.Count - 1 do
        if TreeView1.Items[i].Text = node_key then
        begin
          Selected:=TreeView1.Items[i];
          break;
          // Your Code;
        end;
      

  5.   

    to: lijinghe1(副乡长)
     我其实是想要得到该节点在其他地方使用,能否写的详细一点?to: juliens(星星球) 
     另外还有层数也要考虑吧?因为可能有相同的node_key.
     到时候我是否可以这样引用:tmp_node:=TreeView1.Items[i]?非常感谢
      

  6.   

    你想得到该节点在其他地方使用,那为什么不能先选中该节点呢??如果作搜索的话也只能遍历,TreeView好像没有层数的属性吧!
      

  7.   

    treeview层数的属性是从0开始的,我记得是这样用的:
    tmp_node:=TreeView1.Items[i].level
      

  8.   

    果然,TTreeNode是有Level属性的,受教了!
    with TreeView1.Items do
    begin
      for i := 0 to Count - 1 do
        if (Level = node_level) and  (Text = node_key) then
        begin
          // Your Code;
        end;
    end;
      

  9.   

    你定义了tmp_node: TTreeNode之后,就可以用上述的判断结果来赋值了:
    tmp_node := TreeView1.Items[i];
      

  10.   

    低级错误:
    var tmp_node: TTreeNode;
    with TreeView1 do
    begin
      for i := 0 to Count - 1 do
        if (Items[i].Level = node_level) and  (Items[i].Text = node_key) then
        begin
          tmp_node := Items[i];
        end;
    end;
      

  11.   

    多谢,请 juliens(星星球) 来这里领分。
    http://community.csdn.net/Expert/topic/3089/3089406.xml?temp=.780575