请教我在cellclick中怎么改变当前行的颜色??

解决方案 »

  1.   

    my god,是什么控件的CELLCLICK
      

  2.   

    sorry 忘了,是dbgrid的,很普通的
      

  3.   

    设置DbGrid控件的Options属性中的dgRowSelect属性为真,Color属性为clAqua(背景色), 在DbGrid的DrawColumnCell事件中编写如下代码:
      if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
       DbGrid1.Canvas.Brush.color:=clRed; file://当前行以红色显示,其它行使用背景的浅绿色
       DbGrid1.Canvas.pen.mode:=pmmask;
       DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
      

  4.   

    set the DBGrid's OnDrawColumnCell Event:
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
       DbGrid1.Canvas.Brush.color:=clRed; DbGrid1.Canvas.pen.mode:=pmmask;
       DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);end;
      

  5.   

    如果RowSelect的话,当我点击任意一个column时记录会变到行首,如果排序的话,就看不到超出显示范围的内容了,就是想避开用DrawColumnCell因为gdSelected中决定Canvas范围是随RowSelect而变的!~
      

  6.   

    我想手动改变就是不用rowselect就能得到rowselect的效果