A
  a
     1
       1
       2
     2
  b
B
  a 
     1
     2
  b
可能显示会有点问题,就是A根节点下有a、b两子节点,a下又有1、2两子节点;B根节点下有a、b两子节点,a下又有1,2两子节点
procedure TForm1.TreeView1Click(Sender: TObject);beginif (treeview1.selected.Level=2)and (treeview1.Selected.Index=0)thenmethodsfrm.Show;end;1.运行时点击A-a-1时打开窗体,点击B-a-1时也打开窗体,怎么解决,目标是点击B-a-1时才打开窗体。根节点等级为0,根节点的子节点等级为1,依次类推;序号(index)为0(同等级下的的节点按从上到下数第一个为0,第二个为1,以此类推。这个都知道,就是不知道多个根节点的情况下怎么区分2.如果要点击A-a-1-1的话又该怎么写?

解决方案 »

  1.   

    楼主既然知道这样编码很麻烦,为什么不改一下。
    如:Aa1,Aa11;Ab1,Ab11;
    这样你一看就知道是那个了。如果非要那样写的话,可将一个指定值放在ImageIndex属性中,通过该节点的ImageIndex来判断调用哪个窗口。
      

  2.   

    每个节点没有唯一的标记吗? 可以把这个标记保存在节点的data属性中
    点击的时候就可以判别的
      

  3.   

    if not ((treeview1.selected.Level=2)and (treeview1.Selected.Index=0)) then
      exit;
    if (treeview1.selected.parent.text='A')then
      methodsfrm.Show;
      

  4.   

    这个treeview是从menu菜单中转化过来的,双击打开treeview什么都没有空的,只有运行时看得到
      

  5.   

    怎么样可将一个指定值放在ImageIndex属性中,我这个treeview是从menu菜单中转化过来的,双击打开treeview什么都没有是空的,只有运行时看得到,不像直接双击treeview把一个个节点加进去那样还能设index
      

  6.   

    Aa1   if tv1.selected = tv1.items[0].item[0].item[0]  then ***;