例如我想让第二层的某个节点,可以点右键弹出PopupMenu1,然后有"添加“按钮,可以做增加子目录弹出窗体等操作

解决方案 »

  1.   

    弹出可以这样
    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var aNode:TTreeNode;
    begin
      aNode:=TreeView1.GetNodeAt(X,Y);
       if (Button=mbRight)and(aNode.Level=1) then
         PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
    end;
      

  2.   

    这样做弹出是右键出现Popupmenu,但是得到的不是所选择的,选择的目录和右键出现的目录不是一个
      

  3.   

    难道不会变通一下? 把  aNode:=TreeView1.GetNodeAt(X,Y);改成
     aNode:=TreeView1.Selected;
      

  4.   

    procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    begin
     if Node.level>0 then
      TreeView1.PopupMenu := PopupMenu1
     else TreeView1.PopupMenu := nil;
    end;