有没有给树节点的背景添加颜色的?这个问题提了,但是找不到了,翻了几页也没有找着,只好再提,请能者吱一声,谢谢了,等

解决方案 »

  1.   

    那个里面有一个Color属性,改一下就OK了
      

  2.   

    procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      if  cdsSelected in state  then          //选中的结点颜色
      begin
        (Sender as TTreeview).Canvas.Brush.Color:=clblue;
        (Sender as TTreeview).Canvas.Font.Color:=clRed;
      end
      else
      begin
        (Sender as TTreeview).Canvas.Brush.Color:=clGreen;
        (Sender as TTreeview).Canvas.Font.Color:=clBlack;
      end;
    end;TreeItem的其他状态(转帮助)cdsSelected The control or item is selected.
    cdsGrayed          The control or item should appear grayed.
    cdsDisabled The control or item is disabled.
    cdsChecked The item should appear checked.
    cdsFocused The control or item has input focus.
    cdsDefault The item is the default item.
    cdsHot          The item is under the mouse and the HotTrack property is True.
    cdsMarked          The item is ed (ed items appear shaded by default).
    cdsIndeterminate The item is neither selected nor unselected.
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject); //生成树1
    var
      i:integer;
    begin
      for i:=0 to 9 do
        TreeView1.Items.Add(nil,'aa'+inttostr(i));
    end;procedure TForm1.Button2Click(Sender: TObject);//生成树2
    var
      i:integer;
    begin
      for i:=0 to 9 do
        node:=TreeView2.Items.Add(nil,'aa'+inttostr(i));
    end;procedure TForm1.TreeView2CustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    var
      str:String;
    begin   //如果节点是Treeview1的选中节点,加上颜色
      if TreeView1.Selected.Index>0 then
      begin
        str:=Treeview1.Selected.Text;
        if Node.Text=str then
        begin
          (Sender as TTreeview).Canvas.Brush.Color:=clGreen;
          (Sender as TTreeview).Canvas.Font.Color:=clBlack;
        end;
      end;
    end;procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      if  Node.Index = Treeview1.Selected.Index  then          //选中的结点颜色
      begin
        (Sender as TTreeview).Canvas.Brush.Color:=clblue;
        (Sender as TTreeview).Canvas.Font.Color:=clRed;
      end
    end;procedure TForm1.TreeView1Click(Sender: TObject);
    var       //Treeview1选中节点改变重画Treeview2
      str:String;
      i:integer;
      node:String;
    begin
      if TreeView1.Selected.Index>0 then
        Treeview2.Repaint;
    end;
    end.