不要将treeview的popupmenu设置为你的popupmenu
而是在mousedown里判断,到这里下载源码吧
http://www.csdn.net/cnshare/soft/12/12436.shtm

解决方案 »

  1.   

    TreeView不是有个PopupMenu属性,设为弹出的popupmenu
      

  2.   

    不过有一负作用:即按键盘上的右键菜单键,这个popupmenu就不会弹出来。还有另一做法,就是将treeview的popupmenu设置为你的popupmenu,然后在popupmenu的onpopup事件里根据treeview上选择的node,去设置popupmenu上的菜单项是否可用。
      

  3.   

    在popupmenu的onpopup事件里根据treeview上选择的node,去设置popupmenu上的菜单项是否可用。
      

  4.   

    应该在mousedown事件里面加如下代码
    谢谢大家!
    if button=mbright  then
          if  treeView1.GetNodeAt(x,y)<>nil then
              begin
                 node1:=TreeView1.GetNodeAt(x,y);
                 node1.Selected:=true;
                   if node1.Level=0 then
                     treeview1.PopupMenu:=popupmenu1
                   else
                 treeview1.PopupMenu:=popupmenu2;
              end