procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Node:TTreeNode;
begin
  Node:=treeview1.GetNodeAt(x,y);
  if button=mbRight then
    Node.Selected:=True;end;

解决方案 »

  1.   

    不知道上面这位老兄的方法行不行,如果不行,你可以在右击时,用sendmessage发出LButtondown,LButtonUP两个消息,变成左击。看上你像右击一们。今天我刚用它们解决一个问题,可以的。
      

  2.   

    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
       TreeNode:TTreeNode;
    begin
         if Button<>mbRight then Exit;     
         TreeNode:=TreeView1.GetNodeAt(x,y);
         if TreeNode<>nil then
         begin
              TreeView1.Selected:=TreeNode;
         end;
    end;
    这段代码肯定可以,我在以前写的软件中用过,kkk2000的代码当鼠标点击的位置没有结点将产生
    异常!问题解决后可别忘了给我加分唷!
      

  3.   

    TTreeView本身就有这个属性:RightClickSelect
    设置成true就可以了。