mousedown事件处理,这个node.selected := true

解决方案 »

  1.   

    你在TreeView1的MouseDown事件中加入:
    (TV等于TreeView1)procedure TForm1.TVMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      MyHitTest : THitTests;
      Node      : TTreeNode;
    begin
      MyHitTest := TV.GetHitTestInfoAt(X,Y);
      if (htOnLabel in MyHitTest)then
      begin
        Node := TV.GetNodeAt(X, Y);
        TV.Selected := Node;
      end
    end;是不是左右键都可以选择了!
      

  2.   

    liang_z(千山一刀之忍者神龟) !叫我怎么不谢谢您吗?你的解答是完全正确的,但我真的很苯!不明白为什么要那样的解决吗?谢谢您的解答!您能给我解释以下吗?
      

  3.   

    取一下你鼠标点是什么地方!
    这个地方如有一个TreeNode
    你就选中这个TreeNode!
      

  4.   

    其实这样也是可以的,
    但你仔细测试一下,
    还是有点差别的,
    你不要点在节点上!
    procedure TForm1.TVMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
    //  MyHitTest : THitTests;
      Node      : TTreeNode;
    begin
    //  MyHitTest := TV.GetHitTestInfoAt(X,Y);
        Node := TV.GetNodeAt(X, Y);
      if Node<>nil then
        TV.Selected := Node;
    end;