如题

解决方案 »

  1.   

    CustomDrawItem事件中,当node=treeview.selected时。将font.color设为其他颜色(如白色)。
      

  2.   

    给你个例子
    ---------------
    procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
    Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      if Node.Text = '123' then  //根据Node的具体值给出判断条件
      begin
        DefaultDraw:=True ;
        TreeView1.Canvas.Font.Color:=clRed;
        TreeView1.Canvas.Textout(Node.DisplayRect(true).Left+2,
        Node.DisplayRect(true).top+2,node.text);
      end
    end;
      

  3.   

    这样是可以,只能在TrewView的 drawitem事件中吗?我的功能是,选中一个node然后知道它的selecedindex,就把这个结点颜色变掉。节点仍然原状,仅仅把选中的节点颜色改掉
      

  4.   

    先定义 FClickNode :TTreeNodeprocedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      FClickNode := TreeView1.GetNodeAt(x,y) ;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FClickNode := nil ;
    end;procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if FClickNode <>nil then
      begin
        TreeView1.Canvas.Font.Color:=clRed;
        TreeView1.Canvas.Textout(FClickNode.DisplayRect(true).Left+2,
          FClickNode.DisplayRect(true).top+2,FClickNode.text);
      end else TreeView1.Refresh ;
    end;OK!搞定