最笨但是最直接的办法,就是遍历整个Treeview,找到后设定其为选中。
如果你的数据库结构支持,可以写得技巧一点,直接从它的父亲开始找子节点。

解决方案 »

  1.   

    吧treeview中的node和数据库中的记录关联起来!
      

  2.   

    这个方法是不是太笨了!
    我的TREEVIEW就三层:我的通讯录--分类--姓名;每个人有一个ID(无重复).
    我想我可以确定他的父节点,但怎么把NODE
      

  3.   

    我的TREEVIEW就三层:我的通讯录--分类--姓名;每个人有一个ID(无重复).
    我可以确定他的父节点,但怎么把NODEHE和ID对应起来?(姓名可能有重复);不象VB,NODE有一个'key'!
      

  4.   

    忘了问一下,既然你能实现
    2:单击TREEVIEW中某人名字,在DBGRID中他的记录为选中!
    是不是说可能会在DBGrid中找到多条记录??
      

  5.   

    var
      I: Integer;
    begin
      for I := 0 to TreeView1.Items.Count - 1 do
        if (TreeView1.Items[I].Level = 2) and 
           (TreeView1.Items[I].Text = DBGrid1.DataSource.DataSet.FieldByName('姓名').AsString) and 
           (TreeView1.Items[I].Parent.Text = DBGrid1.DataSource.DataSet.FieldByName('分类').AsString) then begin
          TreeView11.Selected := TreeView1.Items[I];
          Break;
        end;end;
      

  6.   

    to  rockhard(探索中...) 
       一般不会,因为我是通过NODE.INDEX和DBGRID.RECNO来设置的
    zswang(伴水)(需要充充电) 
       还有没有更简单的方法?NODE.itemid和data属性怎么用,我看HELP不大明白!
    因为我E文太差!
      

  7.   

    可以在建立TreeView的时候,将Node和数据表的记录关联起来,我想起来了,我去年年初写过类似的代码,不用去遍历TreeView。我用的就是Data属性,这个属性可以放一个指针,而Dataset的书签就是一个指针,你只要将Dataset的书签赋值给它就行了。