假设有一Listview已填充好数据,要求有一Edit,输入列名,相应的列即变色,如何做到?

解决方案 »

  1.   

    调用ListView1CustomDrawSubItem事件
    不过你要把listview重画一遍
    procedure TfrmQueue.ListView1CustomDrawSubItem(Sender: TCustomListView;
      Item: TListItem; SubItem: Integer; State: TCustomDrawState;
      var DefaultDraw: Boolean);
    begin
      //背景颜色处理用canvas
        if subitem=3 then begin
          case TurnId of //获得不同班次的颜色
            0:listview1.Canvas.Brush.Color:=clRed;//listitem.:=clBlue;//clWindow,clBlack,clDkGray,clGray,clGreen,clPurple,clRed,clSilver,clSkyBlue,clTeal,clWhite,clYellow
            1:listview1.Canvas.Brush.Color:=clBlue;
            2:listview1.Canvas.Brush.Color:=clTeal;
            3:listview1.Canvas.Brush.Color:=clGreen;
            4:listview1.Canvas.Brush.Color:=clGray;
            5:listview1.Canvas.Brush.Color:=clPurple;
            6:listview1.Canvas.Brush.Color:=clBlack;
          end;
        end;
    end;