treeview 下面的节点是动态增加的,现在的我是想实现点击一个节点,然后展开这个节点,动态增加这个节点下面的子节点。点击前这个节点下面是没有子节点的。请问这个点击的事件是什么?expanded 和 expanding 只有节点下面有子节点的时候才会发生事件,click事件触发是没有选中节点的时候点击也会触发。请高手指教。

解决方案 »

  1.   

    TreeNode有HasChildren属性
    赋值为True就可以看到“+”
    在OnExpanding里处理用户点扩展节点的事件
      

  2.   

    var
    bTv_Roler_Sel := true;//全局procedure TSysAdmin.TV_Expanded(Sender: TObject; Node: TTreeNode);
    begin
        bTv_Roler_Sel := true;
    end;procedure TSysAdmin.TV_Collapsed(Sender: TObject; Node: TTreeNode);
    begin
        bTv_Roler_Sel := true;
    end;procedure TSysAdmin.TVMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
      Node: TTreeNode;
    begin
      if bTv_Roler_Sel then begin
        bTv_Roler_Sel := False;
        Exit;
      end;
      Node := TV_Roler.GetNodeAt(X, Y);
      if (Node <> nil) and (Node = TV_Roler.Selected) then 
        chNodeStatueImage(Node);//你要处理的东东
    end;
      

  3.   

    点前面"+"、"-"不触发OnMouseDown,只展开,缩放
    没有选中节点的时候点击不会触发(OnClick没有选中节点的时候点击也会触发)
      

  4.   

    谢谢各位大侠。按照szuzsq(兮)说的基本可以解决问题。